Locomotion Dynamics for Bio-inspired Robots with Soft Appendages: Application to Flapping Flight and Passive Swimming


In animal locomotion, either in fish or flying insects, the use of flexible terminal organs or appendages greatly improves the performance of locomotion (thrust and lift). In this article, we propose a general unified framework for modeling and simulating the (bio-inspired) locomotion of robots using soft organs. The proposed approach is based on the model of Mobile Multibody Systems (MMS). The distributed flexibilities are modeled according to two major approaches: the Floating Frame Approach (FFA) and the Geometrically Exact Approach (GEA). Encompassing these two approaches in the Newton–Euler modeling formalism of robotics, this article proposes a unique modeling framework suited to the fast numerical integration of the dynamics of a MMS in both the FFA and the GEA. This general framework is applied on two illustrative examples drawn from bio-inspired locomotion: the passive swimming in von Karman Vortex Street, and the hovering flight with flexible flapping wings.

This is a preview of subscription content, log in to check access.

Access options

Buy single article

Instant unlimited access to the full article PDF.

US$ 39.95

Price includes VAT for USA

Subscribe to journal

Immediate online access to all issues from 2019. Subscription will auto renew annually.

US$ 99

This is the net price. Taxes to be calculated in checkout.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7


  1. 1.

    This rigid connection is adopted to tackle the dead fish experiment and can be easily replaced by an actuated rotational joint, e.g., a servo motor.

  2. 2.

    In this case, the Reissner beam is used as a model of a hyper-redundant rigid robot (Boyer et al. 2006).

  3. 3.

    Note that in spite of being dedicated to small deformations, this parameterization has been extended in Boyer et al. (2002) to the nonlinear (quadratic) context of moderate deformations.

  4. 4.

    Or more abstract basis of cantilever Rayleigh-Ritz functions as polynomials or splines (Meirovitch 1970).

  5. 5.

    For concision, we omit the \(_\mathrm{r}\) subscript from the reference transformations.

  6. 6.

    The superscript \(+\) distinguishes the matrices of the reference body attached to the entire system rigidified in its current configuration from those of the reference body alone. The tilde symbol \(\widetilde{\;}\) denotes the inertia matrices and forces exerted on the floating frame DoFs after having removed from the first row of (17), the elastic accelerations deduced from its second row, i.e., \(\widetilde{\mathcal {M}}_j = \mathcal {M}_j-M_j^\mathrm{T}m_j^{-1}M_j\) and \(\widetilde{\mathcal F}_j = \mathcal {F}_j-M_j^\mathrm{T}m_j^{-1}Q_j\). These matrices are named condensed matrices and the tilde operator corresponds to the condensation as it is commonly used in structural analysis (Dhatt et al. 2012).

  7. 7.

    Note that when the bodies are approximating finite bodies of a Cosserat beam, the interbody forces are imposed as functions of the current state through the rheological law of the material.

  8. 8.

    Note that in Dickinson et al. (1999), these two effects are modeled separately through a translational and a rotational component. In contrast, we here encode them in a single term, function of the (angular and linear) velocity of the wing at the aerodynamic center of pressure, as proposed in Walker (2002).

  9. 9.

    By definition, the aerodynamic center of pressure is the point about which the moment of pressure forces is independent of the incidence angle. In general, the position of this point varies with the incidence angle. In our simplified case, we neglect the moment of pressure forces and fix the aerodynamic center to a constant position at a distance of c(X) / 4 aft of the leading edge.

  10. 10.

    \(^\mathrm{a}F_\mathrm{steady}\) is a \((6\times 1)\) vector gathering the resultant of quasi-steady forces and their momentum related to the aerodynamical frame.

  11. 11.

    \(\beta (X)\) is the angle between the linear velocity of the aerodynamic center and the cord of the X-cross section. It can be computed as follows, \(\beta = \arctan (V_{\mathrm{a},y},V_{\mathrm{a},z})\) where \([V_{\mathrm{a},x},V_{\mathrm{a},y},V_{\mathrm{a},z}]^\mathrm{T}\) is the vector of the aerodynamical velocity in the cross-sectional frame.

  12. 12.

    Note here that \(\mathcal {M}_{f}(X)\) being related to a zero-thickness section, it has the dimension of a density of added mass tensor per unit of beam length.

  13. 13.

    Note here, that if the fluid is quiescent, \(F_{flow}=0\), \(\eta =(V^{T},\varOmega ^{T})^{T}=\eta _{r}\) and (43)–(44) are reduced to the three-dimensional LAEBT model of Boyer et al. (2010), Candelier et al. (2011).

  14. 14.

    The gradient is defined with respect to the beam coordinates, i.e., \(\nabla _{X}v_{f}=(\partial v_{f,i}/\partial X_{j})_{i,j}\), \(i,j=1,2,3\) where \(v_{f,i}\) are the components of \(v_{f}\) in \({F}_{e}\) and \(X_{j}\) are the beam coordinates extended to the fluid domain.

  15. 15.

    In this way, the second forward recursion computes the torques and the elastic accelerations required to ensure not only the net movements, but also to balance gravity’s acceleration.


  1. Ahlborn, B.K., Blake, R.W., Megill, W.M.: Frequency tuning in animal locomotion. Zoology 109, 43–53 (2006)

  2. Albu-Schäffer, A., Eiberger, O., Grebenstein, M., Haddadin, S., Ott, C., Wimböck, T., Wolf, S., Hirzinger, G.: Soft robotics: from torque feedback-controlled lightweight robots to intrinsically compliant systems. IEEE Robot. Autom. Mag. 15(3), 20–30 (2008)

  3. Alexander, R.M.: Elastic Mechanisms in Animal Movement, 1st edn. Cambridge University Press, Cambridge (1988)

  4. Alexander, R.M.: Models and the scaling of energy costs for locomotion. J. Exp. Biol. 208, 1645–1652 (2005)

  5. Antman, S.S.: Nonlinear Problems of Elasticity (Mathematical Sciences vol 107), 2nd edn. Springer, New York (2005)

  6. Beal, D.N., Hover, F.S., Triantafyllou, M.S., Liao, J.C., Lauder, G.V.: Passive propulsion in vortex wakes. J. Fluid Mech. 549, 385–402 (2006)

  7. Bennet-Clark, H.C.: The energetics of the jump of the locust schistorcerca gregaria. J. Exp. Biol. 63, 53–83 (1975)

  8. Bergou, A.J., Ristroph, L., Guckenheimer, J., Cohen, I., Wang, Z.J.: Turning maneuver in free flight. Phys. Rev. Lett. 104(14), 148,101 (2010)

  9. Boyer, F., Ali, S.: Recursive inverse dynamics of mobile multibody systems with joints and wheels. IEEE Trans. Robot. 27(2), 215–228 (2011). doi:10.1109/TRO.2010.2103450

  10. Boyer, F., Ali, S., Porez, M.: Macro-continuous dynamics for hyper-redundant robots: application to kinematic locomotion bio-inspired by elongated body animals. IEEE Trans. Robot. 28(2), 303–317 (2012). doi:10.1109/TRO.2011.2171616

  11. Boyer, F., Coiffet, P.: Generalization of Newton–Euler model for flexible manipulators. J. Robot. Syst. 13(1), 11–24 (1996)

  12. Boyer, F., Glandais, N., Khalil, W.: Flexible multibody dynamics based on a non-linear Euler–Bernoulli kinematics. Int. J. Numer. Methods Eng. 54(1), 27–59 (2002)

  13. Boyer, F., Khalil, W.: An efficient calculation of flexible manipulator inverse dynamics. Int. J. Robot. Res. 17(3), 282–293 (1998)

  14. Boyer, F., Porez, M.: Multibody system dynamics for bio-inspired locomotion: from geometric structures to computational aspects. Bioinspir. Biomim. 10(2), 025007 (2015)

  15. Boyer, F., Porez, M., Khalil, W.: Macro-continuous computed torque algorithm for a three-dimensional eel-like robot. IEEE Trans. Robot. 22(4), 763–775 (2006). doi:10.1109/TRO.2006.875492

  16. Boyer, F., Porez, M., Leroyer, A.: Poincaré–Cosserat equations for the Lighthill three-dimensional large amplitude elongated body theory: Application to robotics. J. Nonlinear Sci. 20, 47–79 (2010). doi:10.1007/s00332-009-9050-5

  17. Boyer, F., Porez, M., Leroyer, A., Visonneau, M.: Fast dynamics of an eel-like robot—comparisons with Navier–Stokes simulations. IEEE Trans. Robot. 24(6), 1274–1288 (2008)

  18. Boyer, F., Primault, D.: Finite element of slender beams in finite transformations: a geometrically exact approach. Int. J. Numer. Methods Eng. 59(5), 669–702 (2004)

  19. Canavin, J., Likins, P.: Floating reference frames for flexible spacecraft. J. Spacecr. Rockets 14(12), 724–732 (1977)

  20. Candelier, F., Boyer, F., Leroyer, A.: Three-dimensional extension of Lighthill’s large-amplitude elongated-body theory of fish locomotion. J. Fluid Mech. 674, 196–226 (2011)

  21. Candelier, F., Porez, M., Boyer, F.: Note on the swimming of an elongated body in a non-uniform flow. J. Fluid Mech. 716, 616–637 (2013)

  22. Damaren, C., Sharf, I.: Simulation of flexible-link manipulators with inertial and geometric nonlinearities. J. Dyn. Syst. Meas. Control 117(1), 74–87 (1995)

  23. D’Eleuterio, G.M.T.: Dynamics of an elastic multibody chain: part C—recursive dynamics. Dyn. Stab. Syst. 7(2), 61–89 (1992)

  24. Dhatt, G., Lefrançois, E., Touzot, G.: Finite Element Method, 1st edn. Wiley, Hoboken (2012)

  25. Dickinson, M.H., Farley, C.T., Full, R.J., Koehl, M.A., Kram, R., Lehman, S.: How animals move: an integrative view. Science 288(5463), 100–106 (2000)

  26. Dickinson, M.H., Lehmann, F.O., Sane, S.P.: Wing rotation and the aerodynamic basis of insect flight. Science 284(5422), 1954–1960 (1999).

  27. Dombre, E., Khalil, W.: Modélisation et commande des robots. Hermes, Paris (1988)

  28. Featherstone, R.: The calculation of robot dynamics using articulated-body inertias. Int. J. Robot. Res. 2(1), 13–30 (1983)

  29. Featherstone, R.: Robot Dynamics Algorithms. Springer, Boston (1987)

  30. Featherstone, R.: Rigid Body Dynamics Algorithms, 1st edn. Springer, New-York (2008)

  31. Full, R.J., Koditschek, D.E.: Templates and anchors: neuromechanical hypotheses of legged locomotion on land. J. Exp. Biol. 202, 3325–3332 (1999)


  33. Hatton, R.L., Choset, H.: Geometric motion planning: the local connection, stokes’ theorem, and the importance of coordinate choice. Int. J. Robot. Res. 30(8), 988–1014 (2011). doi:10.1177/0278364910394392.

  34. Hughes, P.C., Sincarsin, G.B.: Dynamics of elastic multibody chains: part B—global dynamics. Dyn. Stab. Syst. 4(3–4), 227–243 (1989)

  35. Kelly, S.D., Murray, R.M.: Geometric phases and robotic locomotion. J. Robot. Syst. 12(6), 417–431 (1995)

  36. Khalil, W., Boyer, F., Morsli, F.: General dynamic modeling of floating base tree structure robots with flexible joints and links. IEEE Transactions on Man Systems and Cybernetics (2016)

  37. Khalil, W., Gallot, G., Boyer, F.: Dynamic modeling and simulation of a 3-D serial eel like robot. IEEE Trans. Syst. Man Cybern. Part C Appl. Rev. 37(6), 1259–1268 (2007)

  38. Lighthill, M.J.: Note on the swimming of slender fish. J. Fluid Mech. 9(2), 305–317 (1960)

  39. Lighthill, M.J.: Large-amplitude elongated-body theory of fish locomotion. Proc. R. Soc. Lond. Ser. B Biol. Sci. 179(1055), 125–138 (1971)

  40. Liu, H.: Integrated modeling of insect flight: from morphology, kinematics to aerodynamics. J. Comput. Phys. 228(2), 439–459 (2009)

  41. Long, J.H., Nipper, K.S.: The importance of body stiffness in undulatory propulsion. Am. Zool. 36(6), 678–694 (1996)

  42. Marsden, J.E., Ostrowski, J.: Symmetries in Motion: Geometric Foundations of Motion Control. Motion, Control, and Geometry: Proceedings of a Symposium. National Academies Press, Washington, DC (1998)

  43. McMichael, J.M., Francis, M.S.: Micro air vehicles\(---\)toward a new dimension in flight. Technical report DARPA (1997).

  44. Meirovitch, L.: Methods of Analytical Dynamics. McGraw-Hill, New York (1970)

  45. Murray, R.M., Sastry, S.S., Zexiang, L.: A Mathematical Introduction to Robotic Manipulation, 1st edn. CRC Press Inc., Boca Raton (1994)

  46. Nakata, T., Liu, H.: A fluid-structure interaction model of insect flight with flexible wings. J. Comput. Phys. 231(4), 1822–1847 (2012)

  47. Ostrowski, J., Burdick, J.: Gait kinematics for a serpentine robot. In: Proceedings of IEEE International Conference on Robotics and Automation, pp. 1294–1299 (1996)

  48. Pfeifer, R., Lungarella, M., Iida, F.: Self-organization, embodiment, and biologically inspired robotics. Science 318(5853), 1088–1093 (2007)

  49. Porez, M., Boyer, F., Belkhiri, A.: A hybrid dynamic model for bio-inspired robots with soft appendages - application to a bio-inspired flexible flapping-wing micro air vehicle. In: Proceeding of IEEE International Conference on Robotics and Automation (ICRA’2014), pp. 3556–3563 (2014)

  50. Porez, M., Boyer, F., Ijspeert, A.: Improved lighthill fish swimming model for bio-inspired robots: modeling, computational aspects and experimental comparisons. Int. J. Robot. Res. 33(10), 1322–1341 (2014)

  51. Reissner, E.: On a one-dimensional large displacement finite-strain beam theory. Stud. Appl. Math. 52(2), 87–95 (1973)

  52. Roberts, T.J., Azizi, E.: Flexible mechanisms: the diverse roles of biological springs in vertebrate movement. J. Exp. Biol. 214(3), 353–361 (2011)

  53. Shabana, A.A.: Dynamics of Multibody Systems. Wiley, New York (1989)

  54. Simo, J.C., Vu-Quoc, L.: On the dynamics of flexible beams under large overall motions—the plane case: part I. J. Appl. Mech. 53(4), 849–854 (1986)

  55. Simo, J.C., Vu-Quoc, L.: On the dynamics in space of rods undergoing large motions—a geometrically exact approach. Comp. Methods Appl. Mech. Eng. 66(2), 125–161 (1988). doi:10.1016/0045-7825(88)90073-4.

  56. Tallapragada, P.: A swimming robot with an internal rotor as a nonholonomic system. In: Proceeding of American Control Conference (ACC’2015), pp. 657–662 (2015)

  57. Walker, J.A.: Rotational lift: something different or more of the same? J. Exp. Biol. 205, 3783–3792 (2002)

  58. Walker, M.W., Luh, J.Y.S., Paul, R.C.P.: On-line computational scheme for mechanical manipulator. Transaction ASME. J. Dyn. Syst. Meas. Control 102(2), 69–76 (1980)

  59. Whitney, J., Wood, R.: Aeromechanics of passive rotation in flapping flight. J. Fluid Mech. 660, 197–220 (2010)

  60. Wood, R.J.: Design, fabrication, and analysis of a 3DOF, 3cm flapping-wing MAV. In: International conference on intelligent robots and systems, 2007. IROS 2007. IEEE/RSJ, pp. 1576–1581 (2007)

  61. y Alvarado, P.V., Youcef-Toumi, K.: Design of machines with compliant bodies for biomimetic locomotion in liquid environments. J. Dyn. Syst. Meas. Control 128(1), 3–13 (2006)

Download references


The authors would like to thank all their colleagues and PHD students (whose names appear as coauthors of the referenced papers) who contributed over the last years to develop the specific cases of this general framework.

Author information

Correspondence to Mathieu Porez.

Additional information

Communicated by Maurizio Porfiri.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (mp4 5181 KB)

Supplementary material 1 (mp4 5181 KB)


Appendix 1: Model of External Forces for the Two Examples

In this appendix, we provide the models of external forces used in the numerical simulation of flapping-wing flight and in the swimming simulation of the dead fish. The first model is an adaptation of the model of Dickinson et al. (1999), which was proposed in Porez et al. (2014), while the second is an extension of the Lighthill swimming model proposed in Candelier et al. (2011), Porez et al. (2014).

1.1 Model of the Aerodynamical Forces Exerted on a Flapping Wing

Due to the complex topology of the flow surrounding the flapping wings of an insect, the detailed modeling of aerodynamic forces involved in flapping-wing flight is a challenging issue, which extends beyond the scope of this article (Liu 2009). In Porez et al. (2014), we adopted the following simplified analytical model of the density of aerodynamic forces per unit of span length l,

$$\begin{aligned} \forall X\in [0,l]:\; F_\mathrm {aero}(X) = F_\mathrm {steady}(X) - \left( \mathcal {M}_f \frac{\partial \eta }{\partial t}\right) (X) + \left( \mathrm {ad}_{\eta }^\mathrm {T}(\mathcal {M}_f \eta )\right) (X),\nonumber \\ \end{aligned}$$

where, in accordance with our Cosserat beam modeling, the four terms of (40) describe densities of aerodynamic forces per unit of wing span. This model is directly inspired from the model of Dickinson et al. (1999), which was initially established using a dynamically scaled rigid model of a fruit fly’s wing. Once multiplied by dX (X being the span-wise abscissa), (40) represents a model of the aerodynamic force component applied on each chordwise strip (or blade, as used in aerodynamics). Such a model was applied in Whitney and Wood (2010) to represent the dynamics of flexible flapping wing. On the right hand side of (40), we have 1\(^\circ \)) the quasi-steady forces which model the leading edge vortex effect, together with the rotational circulation preventing the lift from decreasing when the wing quickly turns on itself at the end of a stroke (Dickinson et al. 1999),Footnote 8 2\(^{o}\)) the effect of added mass, in which \(\mathcal {M}_f(X)\) represents the \(6\times 6\) tensor of added mass of the X-cross section. In addition, note that the quasi-steady forces can be detailed as \(F_\mathrm{steady}= \mathrm{Ad}_h^\mathrm{T}.^\mathrm{a}F_\mathrm{steady}\), where \(^\mathrm{a}F_\mathrm{steady}\) is the wrench of aerodynamic forces expressed in a frame aligned with the incident flow centered on the aerodynamical center.Footnote 9 This frame is hereafter referred to as the aerodynamical frame (indexed \(^\mathrm{a}\)), which is related to the cross-sectional frame (attached to the leading edge) by the rigid (homogeneous) transformation h(X). In this aerodynamical frame of reference, the steady forces can be represented as follows, \(^\mathrm{a}F_\mathrm{steady}=(L_\mathrm{stat}^\mathrm{T}+D_\mathrm{stat}^\mathrm{T},0^\mathrm{T})^\mathrm{T}\) with \(L_\mathrm{stat}(X)\) and \(D_\mathrm{stat}(X)\) the lift and drag forces exerted on the X-cross section.Footnote 10 This forces are of the form

$$\begin{aligned} \left\{ \begin{array}{rcl} L_\mathrm{stat} &{}=&{} (1/2)\;\rho _\mathrm{air}\;c(X)C_{L,\mathrm{stat}}\; |V_\mathrm{a}(X)|^{2},\\ D_\mathrm{stat} &{}=&{} (1/2)\;\rho _\mathrm{air}\;c(X)C_{D,\mathrm{stat}}\; |V_\mathrm{a}(X)|^{2}, \end{array}\right. \end{aligned}$$

where \(\rho _\mathrm{air}\) is the density of the air, c(X) is the X-cross-sectional cord length, and \(|V_\mathrm{a}(X)|\) is the norm of the velocity of the aerodynamical center of the blade of spanwise abscissa X. In addition, \(C_{L,\mathrm{stat}}\) and \(C_{D,\mathrm{stat}}\) are empirical dimensionless coefficients which, in the case of a fruit fly (Dickinson et al. 1999), are of the form

$$\begin{aligned} \left\{ \begin{array}{rcl} C_{L,\mathrm{stat}} &{}=&{} 1.8 \sin (2 \beta ),\\ C_{D,\mathrm{stat}} &{}=&{} 1.92-1.55 \cos (2 \beta ), \end{array}\right. \end{aligned}$$

where \(\beta (X)\) is the angle of attack of the X-cross section.Footnote 11 Finally, the effect of added mass is defined as the reaction due to the acceleration of the mass of the fluid surrounding each blade of the wings. In the case of 40, the term \(\mathrm{ad}_{\eta }^\mathrm{T}(\mathcal {M}_f\eta )\) is the added mass term due to Coriolis-centrifugal accelerations.

1. 2 Model of hydrodynamical forces exerted on a swimming body

In the second example, we consider the case of a neutrally buoyant fish (-like robot) with elliptic cross sections. The external forces are hydrodynamic forces locally exerted on the cross sections of the fish (-like robot). Following the works of Lighthill (1960, 1971), several refinements of the Large Amplitude Elongated Body Theory (LAEBT) have been proposed the recent years (Boyer et al. 2010; Candelier et al. 2011, 2013; Porez et al. 2014). In particular, the LAEBT has been extended to model the external forces acting on a carangiform fish swimming in an ambient flow defined by its field of velocity \(v_{f}\) in any point of the ambient space. Based on the integration of the pressure field (given by the unsteady Bernoulli equation) in the curvilinear coordinates of the Cosserat beam prolonged to the nearby flow, the model can be detailed as follows (Candelier et al. 2013):

$$\begin{aligned}&\forall X\in ]0,l[: F_{ext}(X) = - \mathcal {M}_f \frac{\partial \eta _{r}}{\partial t} +\mathrm {ad}^\mathrm {T}_{\eta _{r}} (\mathcal {M}_f \eta _{r})-F_\mathrm {flow}, \end{aligned}$$
$$\begin{aligned}&F_\mathrm {ext}(l) =-(\mathcal {M}_f \eta _{r})\left( e_{1}^{T}\eta _{r}\right) - \frac{1}{2}\left( \eta _{r}^T \mathcal {M}_f \eta _{r}\right) e_1, F_\mathrm {ext}(0)=0, \end{aligned}$$

with \(e_1= (1 \ 0 \ 0 \ 0 \ 0 \ 0)^T\) and \(\mathcal {M}_{f}(X)\) the \(6\times 6\) added mass tensor of the X-cross sectionFootnote 12 in is body frame F(X). Since F(X) is centered on the cross-sectional mass center, \(\mathcal {M}_{f}(X)\) takes the form:

$$\begin{aligned} \mathcal {M}_f=\left( \begin{array}{cc} m_{f} &{} 0 \\ 0 &{} I_{f} \\ \end{array} \right) , \end{aligned}$$

where we introduced the matrices of linear and angular added inertia expressed in the cross-sectional frames centered on the elliptic cross-sectional centroid:

$$\begin{aligned} m_{f}=\left( \begin{array}{ccc} 0&{} 0 &{} 0 \\ 0&{} m_{f2} &{} 0\\ 0&{} 0 &{} m_{f3} \\ \end{array} \right) , \text { }I_{f}=\left( \begin{array}{ccc} I_{f1}&{} 0 &{} 0 \\ 0&{} 0 &{} 0\\ 0&{} 0 &{} 0 \\ \end{array} \right) \end{aligned}$$

In (43)–(44), \(\eta _{r}=(V_{r}^{T},0^{T})^{T}\) is the relative velocity of the cross section’s frame with respect to the fluidFootnote 13, where \(V_{r}(X)=V(X)-V_{f}(X)\) with V(X) and \(V_{f}(X)=R^{T}(X)v_{f}(O(X))\) being the linear velocity of the beam and the fluid (without the beam) both expressed at the center O(X) of the X-cross section in the basis of F(X). With this conventional notation, the two first terms in Eq. (43) (as in the case of the flapping wing) represent the forces exerted by the fluid mass laterally accelerated by each cross section. In contrast to the flapping wing, this hydrodynamic model accounts for the vorticity shed in the wake (Candelier et al. 2013) through the second term of (44). Finally, in the case of the planar swimming, the last term of (43) takes the form \(F_\mathrm{flow}=(f_\mathrm{flow}^{T},m_\mathrm{flow}^{T})^{T}\), where:

$$\begin{aligned}&f_\mathrm {flow} =-m_{b} R^{T}\gamma _{f}+R^{T} \left( \left( \nabla _{X}v_{f}\right) \left( m_{f}V_{r}\right) \right) , \end{aligned}$$
$$\begin{aligned}&m_\mathrm {flow} =\left( 0,0,\widetilde{m}_{f}\partial V_{r,2}/\partial t\right) ^{T}, \end{aligned}$$

with \(m_{b}(X)\) the mass of the X-cross section, and \(\gamma _{f}\) and \(\nabla _{X}v_{f}\) the acceleration and the gradient of the velocity fieldFootnote 14 of the ambient flow (without the body), both evaluated at the center O(X) of the cross section and expressed in the axes of the fixed frame \({F}_{e}\). The field of hydrodynamic couples exerted along the beam given by (48) only depends on the cross section variations since \(V_{r,2}=(0,1,0)V_{r}\) and \(\widetilde{m}_{f}=(m_{f}/4)(a\partial b/\partial X+3b \partial a/\partial X\) with a(X) and b(X) the length of the two axes of the elliptic X-cross section (see Fig. 3b).

Appendix 2: Newton–Euler Model of the MAV of Fig. 1a

The purpose of this appendix is to provide the detail of the notations used in the generalized Newton–Euler model in (17)–(20). First, note that all quantities referring to purely rigid movements were introduced prior to (17)–(20). In particular, \(g_j\), \(\eta _j\), \(\dot{\eta }_j\) denote the associated transformation, velocity and acceleration, respectively, of the \(\mathcal {B}_j\)-body frame, now defined as the \(j\mathrm{th}\) floating frame. In addition, \(\mathcal {M}_j\), \(\mathcal {F}_{j}\) are the \(6\times 6\) inertia matrix and the \(6\times 1\) vectors of Coriolis-centrifugal and external forces, applied to the flexible body when it is locked in its current configuration \(r_{\mathrm{e}j}\). The additional variables used in (17)–(20) are related to the elastic degrees of freedom. In (17), \(m_j\) is the matrix of modal inertia, \(M_j^\mathrm{T}\) is the matrix of inertia coupling between rigid reference accelerations and modal accelerations, and \(Q_{j}\) is the \(N_{ej}\times 1\) vectors of modal inertia (Coriolis-centrifugal), external and internal (restoring elastic) forces, while \(\varPhi _j(l_{j})=(\varPhi _{dj}(l_{j})^\mathrm{T},\varPhi _{rj}(l_{j})^\mathrm{T})^\mathrm{T}\) is the matrix of linear and angular shape functions expressed at \(X=l_j\), (i.e., at the last cross section of \(\mathcal {B}_j\)). In (18)-(20), \(R_{g_{j,i}}\) is the \(6\times 6\) matrix transforming a twist from the basis of \({F}_i\) to the basis of \({F}_j\), leaving the origin unchanged, and \(A_j\) is the unit twist supporting the joint axis. Consequently, \(A_i\dot{r}_i = g_{ai}^{-1}\dot{g}_{ai}\) accounts for the joint velocity, and \(\zeta _i\) contains the corresponding accelerations (\(\ddot{r}_i\)), as well as the residual velocity-dependent accelerations resulting from the time differentiation of 19. Similarly, \(\varPhi _i(l_{i})\dot{r}_{\mathrm{e}i} = \dot{g}_{\mathrm{e}i} g_{\mathrm{e}i}^{-1}\) represents the \(6\times 1\) (elastic) velocity vector introduced by the body \(\mathcal {B}_i\) which precedes \(\mathcal {B}_j\) along the structure’s branch. The interested reader is referred to Boyer and Coiffet (1996) for the detailed expression of these matrices in the general case. In the special case of the MAV described in Sect. 3, because the two flexible wings \(\mathcal {B}_j\), \(j=1\), 2, are terminal bodies, \(\varPhi _j(l_{j})\) plays no role in the model. For a pure torsional deformation (here described with one torsional mode \(\varphi _{t1}\) of modal coordinate \(\theta _1\) per wing), the inertia matrix and the vector of Coriolis-centrifugal (and external) forces in the wings’ generalized NE model (17) can be computed with the exact kinematics (i.e., not linearized) of the wings in the floating frame. The resulting expressions are the following

$$\begin{aligned} \mathcal {M}_j= & {} \left( \begin{array}{cc} {\mathrm{m}}_j 1_{3\times 3} &{} m\widehat{s}_j^\mathrm{T}\\ m\widehat{s}_j &{} J_j \\ \end{array}\right) \text { ,}\nonumber \\ \mathcal {F}_{j}= & {} \left( \begin{array}{c} {\mathrm{m}}_j(V_j \times \varOmega _j) - \varOmega _j \times (\varOmega _j \times ms_j)+f_{\mathrm{ext,}} j\\ ms_j \times (V_{j} \times \varOmega _j)-\varOmega _j\times (J_j \varOmega _j) + b_{j} + m_\mathrm{ext,j} \\ \end{array}\right) , \end{aligned}$$

where \(\mathrm{m}_j =\mu _0\) is the total mass of \(\mathcal {B}_j\), \(b_{j}=\dot{\theta }_1\left( 0,-\mu _{2\tau ,1}\varOmega _{jz},\mu _{2\tau ,1}\varOmega _{jy}\right) ^\mathrm{T}\), and the matrices of first and second momenta of inertia are obtained from

$$\begin{aligned} ms_j = \left( \begin{array}{c} \mu _{x0} \\ 0 \\ 0 \\ \end{array}\right) , \quad J_j = \left( \begin{array}{ccc} \mu _{2} &{} 0 &{} 0 \\ 0 &{} \mu _{xx0}+0.5\mu _{2} &{} 0 \\ 0 &{} 0 &{} \mu _{xx0}+0.5\mu _{2} \end{array}\right) .\nonumber \end{aligned}$$

In addition, we have

$$\begin{aligned} m_j = \mu _{2\tau \tau ,11}, \quad M_j =\left( \; 0,\; 0,\; 0,\; \mu _{2\tau ,1},\; 0,\; 0 \;\right) , \quad Q_j= - k_{\tau ,11}\theta _{1} + Q_{\mathrm{ext}, j}.\nonumber \end{aligned}$$

Computing the above expressions requires the value of the following inertial parameters (\(\rho \) denotes the mass per unit of beam volume, X denotes the span-wise beam coordinate),

$$\begin{aligned} \begin{array}{lll} \mu _0 = \int _\mathrm{span}\rho A \mathrm{d}X, &{} \mu _{x0} = \int _\mathrm{span}X\rho A\mathrm{d}X, &{}\mu _{xx0} = \int _\mathrm{span}X^2\rho A\mathrm{d}X, \\ \mu _2 = \int _\mathrm{span}\rho I_{\rho }\mathrm{d}X, &{} \mu _{2\tau ,1} = \int _\mathrm{span}\rho I_{\rho }\varphi _{t1}\mathrm{d}X , &{}\mu _{2\tau \tau ,11} = \int _\mathrm{span}\rho I_{\rho } \varphi _{t1} \varphi _{t1} \mathrm{d}X, \end{array}\nonumber \end{aligned}$$

as well as that of the modal stiffness,

$$\begin{aligned} k_{\tau ,11} = \int _\mathrm{span}GI_{\rho }\varphi '_{t1}\varphi '_{t1}\mathrm{d}X\nonumber , \end{aligned}$$

where G is the twisting modulus of the beam, A and \(I_{\rho }\) its cross-sectional area and polar inertia, respectively. These parameters being time independent, they can be computed once initially, then used for all simulation times. Finally, we need to compute the external forces \(f_{\mathrm{ext,}j}\), \(m_{\mathrm{ext,}j}\), and \(Q_{\mathrm{ext,}j}\), which are exerted by gravity and the flow surrounding the wing. The gravity force field can be directly included within the algorithm as a net overall acceleration added to \(\dot{\eta }_0\) given by (22).Footnote 15 The model of external forces required by the algorithm thus reduces to that of aerodynamical forces, which are primarily given by

$$\begin{aligned} \begin{array}{rcl} f_{\mathrm{ext}, j} &{}=&{} \int _\mathrm{span}f_\mathrm{aero}(X)\; dX, \\ m_{\mathrm{ext}, j} &{}=&{} \int _\mathrm{span}(\left( X,0,0\right) ^\mathrm{T}\times f_\mathrm{aero}(X)+m_\mathrm{aero}(X))\; dX,\\ Q_{\mathrm{ext}, j} &{}=&{} \int _\mathrm{span}(m_{\mathrm{aero}} \varphi _{t1})(X) dX, \end{array} \end{aligned}$$

where \((f_\mathrm{aero}^\mathrm{T}, m_\mathrm{aero}^\mathrm{T})(X)^\mathrm{T}= F_\mathrm{aero}(X)\) is defined by (40). Additional analytical details could be provided regarding these forces. However, in the simulation discussed in Sect. 7, only the steady component of (40) is used. Meanwhile, the value of \(f_{\mathrm{ext,}j}\), \(m_{\mathrm{ext,}j}\), and \(Q_{\mathrm{ext,}j}\) is obtained from a numerical integration based on the Gauss quadrature method. This space integration is performed at each iteration of the algorithm, using the current values of \(V_\mathrm{a}\) and \(\beta \) required by the model of steady aerodynamic forces (41)–(42), along with the exact expressions (i.e., not linearized) of the position and velocity of the wing material points in the floating frame.

Appendix 3: Mixed Dynamics Algorithm for Soft Locomotion Systems

The algorithm is structured in three recursions. It uses a Boolean variable \(b_o(j)=1\) or \(b_o(j)=0\) depending on whether the \(j\mathrm{th}\) joint’s movement or torque is imposed. Note that if the joint is the result of the discretization of the beam’s strain field, we have \(b_o(j)=0\). The term \(\zeta _{j}\) of (20) is of the form \(\zeta _j= A_j \ddot{r}_j + \nu _j\), where \(\nu _j\) is a velocity-dependent acceleration term deduced from the time differentiation of (18). It is known for any value of \(b_o(j)\), whereas \(\zeta _j\) is known only when \(b_o(j)=1\). For the sake of concision, we use the simplified notations \(g_{ei}(l_{i})=g_{ei}\) and \(\varPhi _{i}(l_{i})=\varPhi _{i}\).

  • First Forward Recursion

    $$\begin{aligned}&\mathbf{For } \,\,j=1 \,\mathbf{ to } j=n \mathbf{, compute }\nonumber \\&\quad g_j = g_i g_{\mathrm{e}i} g_{\mathrm{a}j}, \end{aligned}$$
    $$\begin{aligned}&\quad \eta _j = \mathrm{Ad}_{g_{j,i}} \eta _i + R_{g_{j,i}} \varPhi _i \dot{r}_{ei} + A_j \dot{r}_j, \end{aligned}$$
    $$\begin{aligned}&\quad \mathrm{Ad}_{g_{i,j}},\, R_{g_{i,j}},\, \mathcal {M}_j,\, m_{j},\, M_j,\, \mathcal {F}_j,\, Q_j \end{aligned}$$
    $$\begin{aligned}&\quad \text{ If } b_o(j)=1,\; \text{ compute } \zeta _j,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ If } b_o(j)=0,\; \text{ compute } \nu _j.\\&\mathbf{End \, for. }\nonumber \end{aligned}$$
  • Backward Recursion

    $$\begin{aligned}&\mathbf{For }\, j=n \,\mathbf{ to } \,j=1 \,\mathbf{, compute }\nonumber \\&\quad \text{ If } b_o(j)=1\nonumber \\&\quad \varUpsilon = \widetilde{\mathcal {M}}^+_j,\end{aligned}$$
    $$\begin{aligned}&\quad \gamma = \zeta _j,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ Else }\nonumber \\&\quad k = A^\mathrm{T}_j \widetilde{\mathcal {M}}^+_j A_j, \end{aligned}$$
    $$\begin{aligned}&\quad E = 1_{6\times 6} - k^{-1} \left( A_j A^\mathrm{T}_j\right) \widetilde{\mathcal {M}}^+_j, \end{aligned}$$
    $$\begin{aligned}&\quad \varUpsilon = \widetilde{\mathcal {M}}^+_j E,\end{aligned}$$
    $$\begin{aligned}&\quad \gamma = E \nu _j + k^{-1} A_j \left( \tau _j + A^\mathrm{T}_j \widetilde{\mathcal F}^+_j\right) ,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ End } \text{ if }\nonumber \\&\quad \mathcal {M}^+_i =\mathcal {M}^+_i + \mathrm{Ad}^\mathrm{T}_{g_{j,i}} \varUpsilon \mathrm{Ad}_{g_{j,i}}, \end{aligned}$$
    $$\begin{aligned}&\quad {M^+_i}^\mathrm{T}= {M^+_i}^\mathrm{T}+ \mathrm{Ad}_{g_{j,i}}^\mathrm{T}\varUpsilon R_{g_{j,i}} \varPhi _i, \end{aligned}$$
    $$\begin{aligned}&\quad m^+_i = m^+_i + \varPhi ^\mathrm{T}_i R_{g_{i,j}} \varUpsilon R_{g_{j,i}} \varPhi _i, \end{aligned}$$
    $$\begin{aligned}&\quad \mathcal F^+_i = \mathcal F^+_i + \mathrm{Ad}^\mathrm{T}_{g_{j,i}} \left( \widetilde{\mathcal F}^+_j - \widetilde{\mathcal {M}}^+_j \gamma \right) , \end{aligned}$$
    $$\begin{aligned}&\quad Q^+_i = Q^+_i + \varPhi ^\mathrm{T}_i R_{g_{i,j}} \left( \widetilde{\mathcal F}^+_j - \widetilde{\mathcal {M}}^+_j \gamma \right) , \end{aligned}$$
    $$\begin{aligned}&\quad \widetilde{\mathcal {M}}^+_i = \mathcal {M}^+_i - {M^+_i}^\mathrm{T}{m^+_i}^{-1} M^+_i, \end{aligned}$$
    $$\begin{aligned}&\quad \widetilde{\mathcal F}^+_i = \mathcal F^+_i - {M^+_i}^\mathrm{T}{m^+_i}^{-1} Q^+_i, \\&\mathbf{End \,for. }\nonumber \end{aligned}$$
  • Second Forward Recursion

    $$\begin{aligned}&\mathbf{For } \,j=1 \mathbf{to }\, j=n \,\mathbf{, compute }\nonumber \\&\quad \mu = \mathrm{Ad}_{g_{j,i}} \dot{\eta }_i + R_{g_{j,i}}\varPhi _i \ddot{r}_{ei} + \nu _j,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ If } b_o(j)=1\nonumber \\&\quad \tau _j = A^\mathrm{T}_j \left( \widetilde{\mathcal {M}}^+_j \dot{\eta }_j - \widetilde{\mathcal F}^+_j\right) ,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ Else } \nonumber \\&\quad \ddot{r}_j = k^{-1} \left( \tau _j - A^\mathrm{T}_j \left( \widetilde{\mathcal {M}}^+_j \mu - \widetilde{\mathcal F}^+_j\right) \right) ,\end{aligned}$$
    $$\begin{aligned}&\quad \text{ End } \text{ if }\nonumber \\&\quad \dot{\eta }_j = \mu +A_j\ddot{r}_{j},\end{aligned}$$
    $$\begin{aligned}&\quad \ddot{r}_{ej} = {m^+_j}^{-1} \left( Q^+_j - M^+_j \dot{\eta }_j\right) ,\\&\mathbf{End \,for. }\nonumber \end{aligned}$$

These three recursions are initialized as follows. The first recursion is initialized by the current state of the reference body \((g_0,\eta _0)\), the backward recursion is initialized by \(\widetilde{\mathcal {M}}_{j}^{+}=\widetilde{\mathcal {M}}_{j}=\mathcal {M}_j -M_j^\mathrm{T}m_j^{-1}M_j\) and \(\widetilde{\mathcal F}_j^+=\widetilde{\mathcal F}_j=\mathcal F_j-M_j^\mathrm{T}m_j^{-1}Q_j\), for all j, while the last recursion is initialized by the current reference state \((g_0,\eta _0)(t)\) and the current reference accelerations \(\dot{\eta }_0(t)\), computed after the second recursion from \(\dot{\eta }_0 = \widetilde{\mathcal {M}}_0^{+-1}\widetilde{\mathcal F}_0^+\). Finally, in the case that \(\mathcal {B}_j\) is a rigid body, all modal matrices of (17)–(20) can be removed and \(\widetilde{\mathcal {M}}_j^+=\mathcal {M}_j^+\), \(\widetilde{\mathcal F}_j^+=\mathcal F_j^+\). In particular, when applying the algorithm to the GEA, all bodies are rigid and the algorithm is reduced to a rigid version given in Featherstone (2008). Finally, this algorithm only requires derivation of the generalized Newton–Euler model in a preliminary stage, all remaining calculations can be automatically performed (either numerically or symbolically).

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Boyer, F., Porez, M., Morsli, F. et al. Locomotion Dynamics for Bio-inspired Robots with Soft Appendages: Application to Flapping Flight and Passive Swimming. J Nonlinear Sci 27, 1121–1154 (2017).

Download citation


  • Soft robotics
  • Locomotion
  • Newton–Euler dynamics
  • MAVs
  • Fish-like robots

Mathematics Subject Classification

  • 68T40