﻿ 基于双生成函数的步行机器人最优步态生成
 文章快速检索 高级检索
 浙江大学学报(工学版)  2018, Vol. 52 Issue (7): 1253-1259  DOI:10.3785/j.issn.1008-973X.2018.07.004 0

### 引用本文 [复制中英文]

dx.doi.org/10.3785/j.issn.1008-973X.2018.07.004
[复制中文]
CHEN Di-jian, XU Yi-zhan, WANG Bin-rui. On-line optimal gait generation for biped walking robot by using double generating functions method[J]. Journal of Zhejiang University(Engineering Science), 2018, 52(7): 1253-1259.
dx.doi.org/10.3785/j.issn.1008-973X.2018.07.004
[复制英文]

### 通信联系人

orcid.org/0000-0001-8423-3319.
Email: wangbrpaper@163.com

### 文章历史

On-line optimal gait generation for biped walking robot by using double generating functions method
CHEN Di-jian , XU Yi-zhan , WANG Bin-rui
College of Mechanical and Electrical Engineering, China Jiliang University, Hangzhou 310018, China
Abstract: The double generating functions method from optimal control theory was applied to the on-line optimal gait generation of the biped walking robot.A linear quadratic optimal control problem was designed for the linearized robot model by taking the joint angle and torque as state and input variables respectively and considering its energy consumption.The solution of the problem was derived based on a couple of generating functions, and can be parametrized as the off-line calculated coefficients and boundary conditions. The evaluation correspondingly consisted of the off-line numerical integration part and on-line algebraic computation part.A multi-step example illustrated that the method promoted the efficiency of the on-line trajectory generation.Then a PD controller was designed. When the robot walks with reasonable step lengths and time periods, the error induced by the linearization can be controlled within a small range that the trajectory of the nonlinear model can well follow the reference trajectory of the linearized model.
Key words: biped robot    gait generation    on-line gait    optimal gait    double generating function

1 基于双生成函数的线性最优控制

1.1 线性最优控制问题

 $\left. \begin{array}{l} \mathop {\min }\limits_u \frac{1}{2}\smallint _{{t_0}}^{{t_{\rm{f}}}}({\mathit{\boldsymbol{x}}^{\rm{T}}}\mathit{\boldsymbol{Qx}} + {\mathit{\boldsymbol{u}}^{\rm{T}}}\mathit{\boldsymbol{Ru}}){\rm{d}}t;\\ {\rm{s}}{\rm{.t}}{\rm{.}}\;\mathit{\boldsymbol{\dot x}} = \mathit{\boldsymbol{Ax}} + \mathit{\boldsymbol{Bu}}, \\ \;\;\;\;\mathit{\boldsymbol{x}}({t_0}) = {\mathit{\boldsymbol{x}}_0}, \mathit{\boldsymbol{x}}({t_{\rm{f}}}) = {\mathit{\boldsymbol{x}}_{\rm{f}}}. \end{array} \right\}$ (1)

 $\mathit{\boldsymbol{\dot x}} = {H_\mathit{\boldsymbol{\lambda }}}\left( {\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{\lambda }}} \right), \mathit{\boldsymbol{\dot \lambda }} = - {H_\mathit{\boldsymbol{x}}}\left( {\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{\lambda }}} \right),$ (2)
 ${\mathit{\boldsymbol{u}}^*} = - {\mathit{\boldsymbol{R}}^{ - 1}}{\mathit{\boldsymbol{B}}^{\rm{T}}}\mathit{\boldsymbol{\lambda }}.$ (3)

 $H\left( {\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{\lambda }}} \right) = \frac{1}{2}{\mathit{\boldsymbol{x}}^{\rm{T}}}\mathit{\boldsymbol{Qx}} + {\mathit{\boldsymbol{\lambda }}^{\rm{T}}}\mathit{\boldsymbol{Ax}} - \frac{1}{2}{\mathit{\boldsymbol{\lambda }}^{\rm{T}}}\mathit{\boldsymbol{B}}{\mathit{\boldsymbol{R}}^{ - 1}}{\mathit{\boldsymbol{B}}^{\rm{T}}}\mathit{\boldsymbol{\lambda }}.$

1.2 双生成函数方法

 ${{\mathit{\boldsymbol{\dot X}}}_{\rm{f}}}\left( t \right) = \mathit{\boldsymbol{A}}{\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) - \mathit{\boldsymbol{X}}_{\rm{f}}^{\rm{T}}\left( t \right){\mathit{\boldsymbol{A}}^{\rm{T}}} - \mathit{\boldsymbol{X}}_{\rm{f}}^{\rm{T}}\left( t \right)\mathit{\boldsymbol{Q}}{\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) + \mathit{\boldsymbol{G}}, {\rm{ }}$ (4)
 ${{\mathit{\boldsymbol{\dot Y}}}_{\rm{f}}}\left( t \right) = - {\mathit{\boldsymbol{Y}}_{\rm{f}}}\left( t \right)\mathit{\boldsymbol{Q}}{\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) + {\mathit{\boldsymbol{Y}}_{\rm{f}}}\left( t \right){\mathit{\boldsymbol{A}}^{\rm{T}}},$ (5)
 ${{\mathit{\boldsymbol{\dot X}}}_{\rm{b}}}\left( t \right) = \mathit{\boldsymbol{A}}{\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right) - \mathit{\boldsymbol{X}}_{\rm{b}}^{\rm{T}}\left( t \right){\mathit{\boldsymbol{A}}^{\rm{T}}} - \mathit{\boldsymbol{X}}_{\rm{b}}^{\rm{T}}\left( t \right)\mathit{\boldsymbol{Q}}{\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right) + \mathit{\boldsymbol{G}},$ (6)
 ${{\mathit{\boldsymbol{\dot Y}}}_{\rm{b}}}\left( t \right) = - {\mathit{\boldsymbol{Y}}_{\rm{b}}}\left( t \right)\mathit{\boldsymbol{Q}}{\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right) + {\mathit{\boldsymbol{Y}}_{\rm{b}}}\left( t \right){\mathit{\boldsymbol{A}}^{\rm{T}}},$ (7)

 ${\mathit{\boldsymbol{X}}_{\rm{f}}}({t_0}) = \mathit{\boldsymbol{0}}, {\mathit{\boldsymbol{Y}}_{\rm{f}}}({t_0}) = - I,$ (8)

 $\begin{array}{l} \left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{x}}^*}\left( t \right)}\\ {{\mathit{\boldsymbol{u}}^*}\left( t \right)} \end{array}} \right] = \\ \left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right){{({\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) - {\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right))}^{ - 1}}\mathit{\boldsymbol{Y}}_{\rm{f}}^{\rm{T}}\left( t \right), }&{ - {\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right){{({\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) - {\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right))}^{ - 1}}\mathit{\boldsymbol{Y}}_{\rm{b}}^{\rm{T}}\left( t \right)}\\ {{\mathit{\boldsymbol{R}}^{ - 1}}{\mathit{\boldsymbol{B}}^{\rm{T}}}{{({\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) - {\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right))}^{ - 1}}\mathit{\boldsymbol{Y}}_{\rm{f}}^{\rm{T}}\left( t \right), }&{{\mathit{\boldsymbol{R}}^{ - 1}}{\mathit{\boldsymbol{B}}^{\rm{T}}}{{({\mathit{\boldsymbol{X}}_{\rm{f}}}\left( t \right) - {\mathit{\boldsymbol{X}}_{\rm{b}}}\left( t \right))}^{ - 1}}\mathit{\boldsymbol{Y}}_{\rm{b}}^{\rm{T}}\left( t \right)} \end{array}} \right]\\ \left[ {\begin{array}{*{20}{c}} {\mathit{\boldsymbol{x}}({t_0})}\\ {\mathit{\boldsymbol{x}}({t_{\rm{f}}})} \end{array}} \right]. \end{array}$ (10)

2 双足步行机器人最优步态生成 2.1 双足步行机器人

 图 1 双足步行机器人模型 Fig. 1 Model of biped walking robot

 $\mathit{\boldsymbol{M}}\left( \mathit{\boldsymbol{\theta }} \right)\mathit{\boldsymbol{\ddot \theta }} + \mathit{\boldsymbol{N}}\left( {\mathit{\boldsymbol{\theta }}, \mathit{\boldsymbol{\dot \theta }}} \right)\mathit{\boldsymbol{\theta }} + \mathit{\boldsymbol{G}}\left( \mathit{\boldsymbol{\theta }} \right) = \mathit{\boldsymbol{Cu}}.$ (11)

 $\begin{array}{l} \mathit{\boldsymbol{M}}\left( \mathit{\boldsymbol{\theta }} \right) = \left[ {\begin{array}{*{20}{c}} {{m_{\rm{H}}}{l^2} + m{a^2} + m{l^2}}&{ - mlb\cos ({\theta _1} - {\theta _2})}\\ { - mlb\cos ({\theta _1} - {\theta _2})}&{m{b^2}} \end{array}} \right], \\ \mathit{\boldsymbol{N}}\left( {\mathit{\boldsymbol{\theta }}, \mathit{\boldsymbol{\dot \theta }}} \right) = \left[ {\begin{array}{*{20}{c}} 0&{ - mlb{{\dot \theta }_2}\sin ({\theta _1} - {\theta _2})}\\ {mlb{{\dot \theta }_1}\sin ({\theta _1} - {\theta _2})}&0 \end{array}} \right], \\ \mathit{\boldsymbol{G}}\left( \mathit{\boldsymbol{\theta }} \right) = \left[ {\begin{array}{*{20}{c}} { - ({m_{\rm{H}}}l + m\left( {a + l} \right))g\sin {\theta _1}}\\ {mgb\sin {\theta _2}} \end{array}} \right], \\ \mathit{\boldsymbol{C}} = \left[ {\begin{array}{*{20}{c}} 1&{ - 1}\\ 0&1 \end{array}} \right]. \end{array}$
2.2 线性化系统的步态生成

 $\mathit{\boldsymbol{x}} = {[{\theta _1}, {\theta _2}, {{\dot \theta }_1}, {{\dot \theta }_2}]^{\rm{T}}} = {[{x_1}, {x_2}, {x_3}, {x_4}]^{\rm{T}}},$

 $\mathit{\boldsymbol{\dot x}} = \mathit{\boldsymbol{Ax}} + \mathit{\boldsymbol{Bu}}.$

 $\begin{array}{l} \mathit{\boldsymbol{A}} = \\ \left[ {\begin{array}{*{20}{c}} 0&0&1&0\\ 0&0&0&1\\ {\frac{{g({m_{\rm{H}}}l + m\left( {a + l} \right))}}{{{m_{\rm{H}}}{l^2} + m{a^2}}}}&{\frac{{ - mgl}}{{{m_{\rm{H}}}{l^2} + m{a^2}}}}&0&0\\ {\frac{{gl({m_{\rm{H}}}l + m\left( {a + l} \right))}}{{b({m_{\rm{H}}}{l^2} + m{a^2})}}}&{\frac{{ - g({m_{\rm{H}}}{l^2} + m{a^2} + m{l^2})}}{{b({m_{\rm{H}}}{l^2} + m{a^2})}}}&0&0 \end{array}} \right], \end{array}$ (12)
 $\begin{array}{l} \mathit{\boldsymbol{B}} = \\ \left[ {\begin{array}{*{20}{c}} 0&0\\ 0&0\\ {\frac{1}{{{m_{\rm{H}}}{l^2} + m{a^2}}}}&{\frac{{l - b}}{{b({m_{\rm{H}}}{l^2} + m{a^2})}}}\\ {\frac{l}{{b({m_{\rm{H}}}{l^2} + m{a^2})}}}&{\frac{{{m_{\rm{H}}}{l^2} + m{a^2} + m{l^2} - mbl}}{{m{b^2}({m_{\rm{H}}}{l^2} + m{a^2})}}} \end{array}} \right], \end{array}$ (13)

●线下部分：1)将动力学方程(11)线性化，即根据式(11)、(12)分别得到矩阵AB；2)设定问题(1)中的矩阵QR；3)根据边界条件(8)和(9)，数值求解式(4)~(7)，得到生成函数的系数Xf(t)、Yf(t)、Xb(t)和Yb(t).

●线上部分：4)根据式(10)生成最优状态x*和最优输入u*；5)若改变边界条件x0和/或xf和/或初始时间t0和/或终端时间tf，则转到步骤4).

2.3 基于PD控制的轨迹跟踪

 $\mathit{\boldsymbol{u}} = {\mathit{\boldsymbol{K}}_\theta }({\mathit{\boldsymbol{\theta }}^{{\rm{ref}}}} - \mathit{\boldsymbol{\theta }}) + {\mathit{\boldsymbol{K}}_{\dot \theta }}({{\mathit{\boldsymbol{\dot \theta }}}^{{\rm{ref}}}} - \mathit{\boldsymbol{\dot \theta }}) + {\mathit{\boldsymbol{u}}^{{\rm{ref}}}}.$

 图 2 PD控制器框图 Fig. 2 PD controller
3 仿真及结果分析

 $\left. \begin{array}{l} {\mathit{\boldsymbol{\theta }}^ + } = \mathit{\boldsymbol{ \boldsymbol{\varGamma} }}{\mathit{\boldsymbol{\theta }}^ - }, \\ \mathit{\boldsymbol{ \boldsymbol{\varGamma} }} = \left[ {\begin{array}{*{20}{c}} 0&1\\ 1&0 \end{array}} \right]. \end{array} \right\}$ (14)

 ${\mathit{\boldsymbol{\theta }}^ - } = \mathit{\boldsymbol{ \boldsymbol{\varGamma} }}{\mathit{\boldsymbol{\theta }}^ + }.$

 ${\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ - }({\mathit{\boldsymbol{\theta }}^ - }){\mathit{\boldsymbol{\dot\theta }}^ - } = {\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ + }({\mathit{\boldsymbol{\theta }}^ + }){{\mathit{\boldsymbol{\dot \theta }}}^ + }.$ (15)

 $\begin{array}{l} {\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ - }({\mathit{\boldsymbol{\theta }}^ - }) = \\ \left[ {\begin{array}{*{20}{c}} { - mab + ({m_{\rm{H}}}{l^2} + 2mal)\cos (\theta _2^ - - \theta _1^ - )}&{ - mab}\\ { - mab}&0 \end{array}} \right], \end{array}$
 $\begin{array}{l} {\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ - }({\mathit{\boldsymbol{\theta }}^ - }) = \\ \left[ {\begin{array}{*{20}{c}} {ml(l - b\cos (\theta _1^ + - \theta _2^ + )) + m{a^2} + {m_{\rm{H}}}{l^2}, }&{mb\left( {b - l\cos \left( {\theta _1^ + - \theta _2^ + } \right)} \right)}\\ { - mbl\cos (\theta _1^ + - \theta _2^ + ), }&{m{b^2}} \end{array}} \right]. \end{array}$

 $\begin{array}{l} {{\mathit{\boldsymbol{\dot \theta }}}^ + } = {\left( {{\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ + }\left( {{\mathit{\boldsymbol{\theta }}^ + }} \right)} \right)^{ - 1}}{\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ - }\left( {{\mathit{\boldsymbol{\theta }}^ - }} \right){{\mathit{\boldsymbol{\dot \theta }}}^ - } = \\ \;\;\;\;\;\;{\left( {{\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ + }\left( {\mathit{\boldsymbol{ \boldsymbol{\varGamma} }}{\mathit{\boldsymbol{\theta }}^ - }} \right)} \right)^{ - 1}}{\mathit{\boldsymbol{ \boldsymbol{\varPhi} }}^ - }\left( {{\mathit{\boldsymbol{\theta }}^ - }} \right){{\mathit{\boldsymbol{\dot \theta }}}^ - }. \end{array}$ (16)

 $\left. {\begin{array}{*{20}{l}} {{\mathit{\boldsymbol{x}}^1}(t_0^1] = {{\left[ {0, 0, 0, 0} \right]}^{\rm{T}}}, }&{t_0^1 = 0;}\\ {{\mathit{\boldsymbol{x}}^1}\left[ {t_{\rm{f}}^1} \right] = {{\left[ {0.1, - 0.1, 0.4, - 0.4} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^1 = {{1.0}^ - };}\\ {{\mathit{\boldsymbol{x}}^2}\left[ {t_0^2} \right] = {{\left[ { - 0.1, 0.1, 0.47, 0.52} \right]}^{\rm{T}}}, }&{t_0^2 = {{1.0}^ + };}\\ {{\mathit{\boldsymbol{x}}^2}\left[ {t_{\rm{f}}^2} \right] = {{\left[ {0.1, - 0.1, 0.4, - 0.4} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^2 = {{2.0}^ - };}\\ {{\mathit{\boldsymbol{x}}^3}\left[ {t_0^3} \right] = {{\left[ { - 0.1, 0.1, 0.47, 0.52} \right]}^{\rm{T}}}, }&{t_0^3 = {{2.0}^ + };}\\ {{\mathit{\boldsymbol{x}}^3}\left[ {t_{\rm{f}}^3} \right] = {{\left[ {0.1, - 0.1, 0.4, - 0.4} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^3 = {{3.0}^ - };}\\ {{\mathit{\boldsymbol{x}}^4}\left[ {t_0^4} \right] = {{\left[ { - 0.1, 0.1, 0.47, 0.52} \right]}^{\rm{T}}}, }&{t_0^4 = {{3.0}^ + };}\\ {{\mathit{\boldsymbol{x}}^4}\left[ {t_{\rm{f}}^4} \right] = {{\left[ {0.2, - 0.2, 0.8, - 0.8} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^4 = {{3.8}^ - };}\\ {{\mathit{\boldsymbol{x}}^5}\left[ {t_0^5} \right] = {{\left[ { - 0.2, 0.2, 0.85, 0.77} \right]}^{\rm{T}}}, }&{t_0^5 = {{3.8}^ + };}\\ {{\mathit{\boldsymbol{x}}^5}\left[ {t_{\rm{f}}^5} \right] = {{\left[ {0.2, - 0.2, 0.8, - 0.8} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^5 = {{4.6}^ - };}\\ {{\mathit{\boldsymbol{x}}^6}\left[ {t_0^6} \right] = {{\left[ { - 0.2, 0.2, 0.85, 0.77} \right]}^{\rm{T}}}, }&{t_0^6 = {{4.6}^ + };}\\ {{\mathit{\boldsymbol{x}}^6}\left[ {t_{\rm{f}}^6} \right] = {{\left[ {0.2, - 0.2, 0.8, - 0.8} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^6 = {{5.4}^ - };}\\ {{\mathit{\boldsymbol{x}}^7}\left[ {t_0^7} \right] = {{\left[ { - 0.2, 0.2, 0.85, 0.77} \right]}^{\rm{T}}}, }&{t_0^7 = {{5.4}^ + };}\\ {{\mathit{\boldsymbol{x}}^7}\left[ {t_{\rm{f}}^7} \right] = {{\left[ {0, 0, 0, 0} \right]}^{\rm{T}}}, }&{t_{\rm{f}}^7 = 6.2.} \end{array}} \right\}$

 图 3 7个步态的状态和输入轨迹 Fig. 3 State and input trajectories for 7 gaits
 图 4 7个步态的状态和输入轨迹跟踪误差 Fig. 4 Tracking error of state and input trajectories for 7 gaits
 图 5 步态2-3和5-6的${\theta _1} - {{\dot \theta }_1}$相位图像 Fig. 5 Phase portrait of ${\theta _1} - {{\dot \theta }_1}$ for gaits 2-3 and 5-6

4 结语

 [1] SHIN H K, KIM B K. Energy-efficient gait planning and control for biped robots utilizing the allowable ZMP region[J]. IEEE Transactions on Robotics, 2014, 30(4): 986-993. DOI:10.1109/TRO.2014.2305792 [2] 张博, 杜志江, 孙立宁, 等. 双足步行机器人步态规划方法研究[J]. 机械与电子, 2008(4): 52-55. ZHANG Bo, DU Zhi-jiang, SUN Li-ning, et al. Research on gait planning of biped walking robot[J]. Machinery and Electronics, 2008(4): 52-55. [3] 李攀, 魏洪兴. 双足机器人步态规划方法研究[J]. 机械工程与自动化, 2017(4): 22-24. LI Pan, WEI Hong-xing. Method of gait planning for biped robot[J]. Mechanical Engineering and Automation, 2017(4): 22-24. [4] ROSTAMI M, BESSONNET G. Sagittal gait of a biped robot during the single support phase.part 2:optimal motion[J]. Robotica, 2001, 19(3): 241-245. [5] SAIDOUNI T, BESSONNET G. Generating globally optimised sagittal gait cycles of a biped robot[J]. Robotica, 2003, 21(2): 199-210. [6] MCGEER T. Passive dynamic walking[J]. International Journal of Robotics Research, 1990, 9(2): 62-82. DOI:10.1177/027836499000900206 [7] LEE J H, OKAMOTO S, KOIKE H, et al. Development and motion control of a biped walking robot based on passive walking theory[J]. Artificial Life and Robotics, 2014, 19(1): 68-75. DOI:10.1007/s10015-013-0132-y [8] SAFA A, NARAGHI M. The role of walking surface in enhancing the stability of the simplest passive dynamic biped[J]. Robotica, 2015, 33(1): 195-207. DOI:10.1017/S0263574714000204 [9] GRITLI H, BELGHITH H, KHRAIEF N. OGY-based control of chaos in semi-passive dynamic walking of a torso-driven biped robot[J]. Nonlinear Dynamics, 2015, 79(2): 1363-1384. DOI:10.1007/s11071-014-1747-9 [10] CAO Y, SUZUKI S, HOSHINO Y. Uphill and level walking of a three-dimensional biped quasi-passive walking robot by torso control[J]. Robotica, 2016, 34(3): 483-496. DOI:10.1017/S0263574714001593 [11] ZHU H, LUO H, MEI T, et al. Energy-efficient bio-inspired gait planning and control for biped robot based on human locomotion analysis[J]. Journal of Bionic Engineering, 2016, 13(2): 271-282. DOI:10.1016/S1672-6529(16)60300-1 [12] WANG L, LIU Z, CHEN C, et al. Energy-efficient svm learning control system for biped walking robots[J]. IEEE Transactions on Neural Networks and Learning Systems, 2013, 24(5): 831-837. DOI:10.1109/TNNLS.2013.2242486 [13] ASANO F, YAMAKITA M, KAMAMICHI N, et al. A novel gait generation for biped walking robots based on mechanical energy constraint[J]. IEEE Transactions on Robotics and Automation, 2004, 20(3): 565-573. DOI:10.1109/TRA.2004.824685 [14] COLLINS S, RUINA A, TEDRAKE R, et al. Efficient bipedal robots based on passive-dynamic walkers[J]. Science, 2005, 307(5712): 1082-1085. DOI:10.1126/science.1107799 [15] SATOH S, FUJIMOTO K, HYON S. A framework for optimal gait generation via learning optimal control using virtual constraint[C]//Proceedings of the 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems. Nice: IEEE, 2008: 3426-3432. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4650860 [16] FUJIMOTO K, SUGIE T. Iterative learning control of hamiltonian systems:I/O based optimal control approach[J]. IEEE Transactions on Automatic Control, 2003, 48(10): 1756-1761. DOI:10.1109/TAC.2003.817908 [17] SHIN H K, KIM B K. Energy-efficient gait planning and control for biped robots utilizing vertical body motion and allowable ZMP region[J]. IEEE Transactions on Industrial Electronics, 2015, 62(4): 2277-2286. DOI:10.1109/TIE.2014.2360152 [18] MCENEANEY W, DOWER P. The principle of least action and fundamental solutions of mass-spring and n-body two-point boundary value problems[J]. SIAM Journal on Control and Optimization, 2015, 53(5): 2898-2933. DOI:10.1137/130921908 [19] CRISTIANI E, MARTINON P. Initialization of the shooting method via the Hamilton-Jacobi-bellman approach[J]. Journal of Optimization Theory and Applications, 2010, 146(2): 321-346. DOI:10.1007/s10957-010-9649-6 [20] GUIBOUT V, SCHEERES D J. Solving relative two point boundary value problems:spacecraft formation flight transfers application[J]. Journal of Guidance, Control, and Dynamics, 2004, 27(4): 693-704. DOI:10.2514/1.11164 [21] PARK C, SCHEERES D J. Determination of optimal feedback terminal controllers for general boundary conditions using generating functions[J]. Automatica, 2006, 42(5): 869-875. DOI:10.1016/j.automatica.2006.01.015 [22] HAO Z, FUJIMOTO K. Approximate solutions to the Hamilton-Jacobi equations for generating functions with a quadratic cost function with respect to the input[C]//Proceedings of the 4th IFAC Workshop on Lagrangian and Hamiltonian Methods for Nonlinear Control. Bertinoro: Elsevier, 2012: 194-199. http://www.sciencedirect.com/science/article/pii/S1474667015337666 [23] HAO Z, FUJIMOTO K, HAYAKAWA Y. Optimal trajectory generation for linear systems based on double generating functions[J]. SICE Journal of Control, Measurement, and System Integration, 2012, 6(3): 194-201. [24] GEERING H P. Optimal control with engineering applications[M]. 1st ed. Berlin: Springer, 2007, 24-35. [25] HURMUZLU Y, CHANG T H. Rigid body collisions of a special class of planar kinematic chains[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1992, 22(5): 964-971. DOI:10.1109/21.179836