Skip to main content
Log in

Neural Oscillator Based CPG for Various Rhythmic Motions of Modular Snake Robot with Active Joints

  • Published:
Journal of Intelligent & Robotic Systems Aims and scope Submit manuscript

Abstract

In this paper, construction of a newly designed snake robot is suggested along with the algorithm for generation of different rhythmic motions. The proposed robot system has modular structures with extendable length. It is subdivided into body, neck, head and tail modules. Each body module has two rotary motors to generate pitch and yaw motions of the snake robot. A linear actuator is also installed inside each body module in order to change the length of robot. The neck module in the robot is provided with two rotary motors to make the spherical motion of head module. Neural oscillator based central pattern generators (CPG) are used to produce rhythmic patterns for various snake robot movements, for example, serpentine, side-winding, two-step-concertina and four-step-concertina motions are generated in the snake robot using the proposed CPG algorithm. For serpentine motion, the body of robot is bent to form the planar sinusoidal waveform using whole body modules on the ground. To generate side-winding motion, the robot body is bent in such a way that it makes two dimensional sinusoidal waveform and only a few points of its body make contacts with the ground. By using the CPG algorithm, these contact points are propagated from tail to head, and the robot is ultimately moved along one side. In concertina motion, the body is sequentially pushed forward in steps from tail to head using the proposed algorithm. Finally several experiments are conducted on a laboratory floor in order to confirm the authenticity of robot design and CPG algorithm so that the comparison between different motions can be achieved.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Lilly white, H.B.: How Snakes Work: Structure, Function and Behavior of the World’s Snakes. Oxford University Press, London (2014)

    Google Scholar 

  2. Hirose, S., Yamada, H.: Snake-like robots machine design of biologically inspired robots. IEEE Robot. Autom. Mag. 16(1), 88–98 (2009)

    Article  Google Scholar 

  3. Hopkins, J.K., et al.: A survey of snake inspired robot designs. Bioinspir. Biomim. 4(2), 021001 (2009)

    Article  Google Scholar 

  4. Crespi, A., et al.: Amphibot I: an amphibious snake-like robot. Mechatronics 50(4), 163–175 (2005)

    MathSciNet  Google Scholar 

  5. Crespi, A., Ijspeert, A.J.: Amphibot II: an amphibious snake robot that crawls and swims using a central pattern generator. In: International Conference on Climbing and Walking Robots, pp. 19–27 (2006)

  6. Wright, C., et al.: Design and architecture of the unified modular snake robot. In: IEEE International Conference on Robotics and Automation (ICRA), pp. 4347–4354 (2012)

  7. Pal, L., et al.: Mamba - a waterproof snake robot with tactile sensing. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 294–301 (2014)

  8. Sugita, S., et al.: A study on the mechanism and locomotion strategy for new snake-like robot active cord mechanism Slime model 1 ACM-s1. J. Rob. Mechatronics 20(2), 302–310 (2008)

    Article  Google Scholar 

  9. Manzoor, S., Choi, Y.: Modular design of snake robot for serpentine and rectilinear motions. In: 13th International Conference on Ubiquitous Robots and Ambient Intelligence (URAI), pp. 211–213 (2016)

  10. Junzhi, Yu, et al.: A survey on CPG-inspired control models and system implementation. IEEE Transactions on Neural Networks and Learning Systems 25(3), 441–456 (2014)

    Article  Google Scholar 

  11. Rostro-Gonzalez, H., Cerna-Garcia, P.A., Trejo-Caballero, G., Garcia-Capulin, C.H., Ibarra-Manzano, M.A., Avina-Cervantes, J.G., Torres-Huitzil, C.: A CPG system based on spiking neurons for hexapod robot locomotion. Neurocomputing 170, 47–54 (2015)

    Article  Google Scholar 

  12. Yu, H., Gao, H., Ding, L., Li, M., Deng, Z., Liu, G.: Gait generation with smooth transition using CPG-based locomotion control for hexapod walking robot. IEEE Trans. Ind. Electron. 63(9), 5488–5500 (2016)

    Article  Google Scholar 

  13. Zhong, B., Zhang, S., Xu, M., Zhou, Y., Fang, T., Li, W.: On a CPG-based hexapod robot: AmphiHex-II with variable stiffness legs. IEEE/ASME Trans. Mechatron. 23(2), 542–551 (2018)

    Article  Google Scholar 

  14. Crespi, A., Ijspeert, A.J.: Online optimization of swimming and crawling in an amphibious snake robot. IEEE Trans. Robot. 24(1), 75–87 (2008)

    Article  Google Scholar 

  15. Wu, X., Ma, S., et al.: Adaptive creeping locomotion of a CPG-controlled snake-like robot to environment change. Auton. Robot. 28(3), 283–294 (2010)

    Article  Google Scholar 

  16. Wu, X., Ma, S.: CPG-based control of serpentine locomotion of a snake-like robot. Mechatronics 20(2), 326–334 (2010)

    Article  Google Scholar 

  17. Nor, N.M., Ma, S.: A simplified CPGs network with phase oscillator model for locomotion control of a snake-like robot. J. Intell. Robot. Syst. 75(1), 71–86 (2014)

    Article  Google Scholar 

  18. Bing, Z., et al.: Towards autonomous locomotion: CPG-based control of smooth 3D slithering gait transition of a snake-like robot. Bioinspir. Biomim. 12(3), 035001 (2017)

    Article  MathSciNet  Google Scholar 

  19. Zhang, D., et al.: Smooth transition of the CPG-based controller for snake-like robots. In: IEEE International Conference on Robotics and Biomimetics (ROBIO), pp. 2716–2721 (2017)

  20. Wang, Z., et al.: CPG-inspired locomotion control for a snake robot basing on nonlinear oscillator. J. Intell. Robot. Syst. 85(2), 209–227 (2017)

    Article  Google Scholar 

  21. Manzoor, S., Choi, Y.: A unified neural oscillator model for various rhythmic locomotions of snake-like robot. Neurocomputing 173(3), 1112–1123 (2016)

    Article  Google Scholar 

  22. Manzoor, S., Choi, Y.: Recurring side-winding motion generation for modular snake robot. In: IEEE International Conference on Robotics and Biomimetics (ROBIO), pp. 1468–1473 (2017)

  23. Sksguchi, H., Kuramoto, Y.: A soluble active rotator model showing phase transitions via mutual entrainment. Lect. Notes Phys. 76(3), 576–581 (1986)

    MathSciNet  Google Scholar 

  24. Liu, P., Yu, H., Cang, S.: Modelling and dynamic analysis of underactuated capsule systems with friction-induced hysteresis. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 549–554 (2016)

  25. Liu, P., Yu, H., Cang, S.: Geometric analysis-based trajectory planning and control for underactuated capsule systems with viscoelastic property. Trans. Inst. Meas. Control. 40(7), 2416–2427 (2018)

    Article  Google Scholar 

Download references

Acknowledgments

This work was supported by the Convergence Technology Development Program for Bionic Arm through the National Research Foundation of Korea funded by the Ministry of Science, ICT & Future Planning (NRF- 2015M3C1B2052811).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Youngjin Choi.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Electronic supplementary material

Below is the link to the electronic supplementary material.

(MP4 18.1 MB)

Appendices

Appendix A: Selection of Parameters \(a_{j_{x}}\) and \(b_{j_{x}}\)

Neuron activation model of Eq. 2 is derived from the generalized sigmoid function given as:

$$A = \frac{1}{1+e^{-B}} \quad \left\{\begin{array}{lcl} \approx 0 &\forall& B<-6 \\ = 0.5 & \forall & B = 0 \\ \approx 1 & \forall & B>6 \end{array} \right. $$

where \(A=f_{i_{x}} (\theta _{j_{x}})\) and \(B= -(b_{j_{x}}-a_{j_{x}}\cos (\theta _{j_{x}}))\) as given in Eq. 2. In above equation, the parameters \(a_{j_{x}}\) and \(b_{j_{x}}\) determine the shape of output generated by neural activation. On the requirements of different types of snake robot motions, the values of parameters \(a_{j_{x}}\) and \(b_{j_{x}}\) are selected as follows [21]:

  1. 1.

    In serpentine and side-winding motions, \(f_{i_{x}}(\theta _{j_{x}})\) is required to be a periodic function having range \(0<f_{i_{x}}(\theta _{j_{x}})<1\). This periodic function can be achieved by taking \(b_{j_{x}}= 0\) and \(-6<a_{j_{x}}<6\) for given \(-1 \leq \cos (\theta _{j_{x}})\leq 1\).

  2. 2.

    For two-step and four-step concertina motions, the neuron having refractory period is required due to discontinues motion of snake. If the values of parameters are taken such that \(a_{j_{x}}=b_{j_{x}}>6\), then the function \(f_{i_{x}}(\theta _{j_{x}})\) yields its output as follows:

    $$\begin{array}{@{}rcl@{}} && f_{i_{x}} (\theta_{j_{x}}) \approx 0 \qquad\qquad\qquad~~~ \text{for} ~~ \cos \theta_{j_{x}} < \frac{a_{j_{x}}-6}{a_{j_{x}}}\\ && f_{i_{x}} (\theta_{j_{x}}) = 0.5 \qquad\qquad\qquad \text{when} ~~ \theta_{j_{x}} = 0 \end{array} $$

Appendix B: Selection of Phase Difference \(\phi _{k_{x},j_{x}}\)

  1. 1.

    Serpentine Motion:

    1. (a)

      The serpentine motion is performed in the plane, i.e., pitch actuators as well as head and neck actuators have constant zero orientations. These can be achieved by keeping the coupled excitatory and inhibitory neurons for pitch actuators to be the same phases, namely, the phase differences \(\phi _{k_{p},j_{p}}\), \(\phi _{k_{N},j_{N}}\) and \(\phi _{k_{H},j_{H}}\) for these actuators are taken such that:

      $$\phi_{k_{p},j_{p}} = \phi_{k_{N},j_{N}} = \phi_{k_{H},j_{H}} = 0 ~~~~~ \forall~~ k=j + 1 $$
    2. (b)

      In case of yaw actuators, the coupled excitatory and inhibitory neurons are taken out of phase, in this way, they do not have any constant zero orientations and thus the snake forms a sine-wave shape on ground. The phase differences \(\phi _{k_{y},j_{y}}\) for yaw actuators are taken such that:

      $$\phi_{k_{y},j_{y}}= \pi~~~~~~~~~~~~~ \forall~~ k=j + 1 $$

      On the other hand, the phase differences between the neighboring neurons in the network are taken by using this principle:

      $$\phi_{k_{y},j_{y}}= 2 \pi \frac{n_{sw}}{n_{y}}~~~~~~~~~~~~~ \forall~~ k=j + 2 $$

      with \(n_{y}\) as the total number of yaw actuators and \(n_{sw}\) as the total number of sinusoidal waveforms required during serpentine motion, namely, \(n_{y} = 7\) and \(n_{sw} = 1\) for our experiments.

    3. (c)

      As the coupled neurons of pitch actuators and yaw actuators, since those of yaw actuators are out of phase and those of pitch actuators are in phase, the phase differences between odd pair of neurons of yaw actuator and neighboring pitch actuator are taken such that:

      $$\phi_{k_{p},j_{y}}= 0 ~~~~~~~~~~~~~ \forall~~ \text{odd}~~ k=j + 2 $$

      While those between even pair of neurons of yaw actuator and neighboring pitch actuator are taken such that:

      $$\phi_{k_{p},j_{y}}= \pi~~~~~~~~~~~~~ \forall~~ \text{even}~~ k=j + 2 $$

      Similar conditions are applied to the phase differences between neurons of seventh yaw actuator and neck actuator as follows:

      $$\phi_{1_{N},13_{y}}= 0, ~~~~ \phi_{2_{N},14_{y}} = \pi $$
    4. (d)

      On the other hand, the phase differences between neurons of first yaw actuator and first pitch actuator are taken such that:

      $$\phi_{1_{p},1_{y}}= 0 , ~~~~ \phi_{2_{p},2_{y}}= -\pi $$
    5. (e)

      The phase differences between neurons of neck actuator and the head actuator are taken such that:

      $$\phi_{1_{H},1_{N}}= \phi_{2_{H},2_{N}} = 0 $$
  2. 2.

    Side-winding Motion:

    1. (a)

      The side-winding is a non-planer motion. This can be achieved by taking out of the phase difference between the coupled excitatory and inhibitory neurons of both pitch and yaw actuators. The phase differences between these neurons are taken such that:

      $$\phi_{k_{p},j_{p}}= \phi_{k_{y},j_{y}}= \pi~~~~~~~~~~~~~ \forall~~ k=j + 1 $$
    2. (b)

      In case of yaw actuators, the phase differences between the neighboring neurons in the network are taken by using this principle:

      $$\phi_{k_{y},j_{y}}= 2\pi \frac{n_{sw}}{n_{y}}~~~~~~~~~~~~~ \forall~~ k=j + 2 $$

      where \(n_{y} = 7\) and \(n_{sw} = 1\) so that one full sine-wave can be generated by snake body during side-winding motion.

    3. (c)

      The phase differences between neurons of yaw actuator and neighboring pitch actuator are taken such that:

      $$\phi_{k_{p},j_{y}}= \frac{\pi}{2} ~~~~~~~~~~~~~ \forall~~ k=j + 2 $$

      It results in the ground contact at the center of sine-wave form.

    4. (d)

      The phase differences between neurons of first yaw actuator and first pitch actuator are taken such that:

      $$\phi_{1_{p},1_{y}}= \phi_{2_{p},2_{y}}= -\frac{3\pi}{14} $$
    5. (e)

      The phase differences between neurons of seventh yaw rotation actuator and neck actuator are taken such that:

      $$\phi_{1_{N},13_{y}} = \phi_{2_{N},14_{y}} = \frac{\pi}{4} $$

      While the phase differences between neurons of neck and head actuator are taken such that:

      $$\phi_{1_{H},1_{N}} = \phi_{2_{H},2_{N}} = \frac{\pi}{4} $$

      These result in a total of \(\frac {\pi }{2}\) phase difference between foremost yaw actuator and two consecutive neck and head pitch actuators.

  3. 3.

    Two-Step Concertina Motion:

    1. (a)

      Like serpentine motion, two-step concertina is planner motion, i.e., pitch actuators as well as head and neck actuators have constant zero orientations. Thus the phase differences for these actuators are taken such that:

      $$\phi_{k_{p},j_{p}}=\phi_{k_{N},j_{N}}=\phi_{k_{H},j_{H}} = 0~~~~~~~~~~~~~ \forall~~ k=j + 1 $$
    2. (b)

      In case of yaw actuators, phase differences between the coupled excitatory and inhibitory neurons are taken such that:

      $$\phi_{k_{y},j_{y}}= 0~~~~~~~~~~~~~ \forall~~ k=j + 1 $$
    3. (c)

      The phase differences between the neighboring neurons are taken to be \(\phi _{k_{y},j_{y}}= 0\) for actuators that fold during the same step, but \(\phi _{9_{y},7_{y}} = \phi _{10_{y}, 8_{y}} = \frac {\pi }{2}\) for neighboring actuators that separate the front and hind folding parts of robot body.

  4. 4.

    Four-Step Concertina Motion:

    1. (a)

      Like serpentine and two-step concertina motions, four-step concertina is also planner motion, i.e., pitch actuators as well as head and neck actuators have constant zero orientations. Thus the phase differences for these actuators are taken as:

      $$\phi_{k_{p},j_{p}}=\phi_{k_{N},j_{N}}=\phi_{k_{H},j_{H}}= 0~~~~~~~~~~~~~ \forall~~ k=j + 1 $$
    2. (b)

      In case of yaw actuators, the coupled excitatory and inhibitory neurons are out of phase, in this way, they do not have any constant zero orientations. The phase differences for yaw actuators are taken such that:

      $$\phi_{k_{y},j_{y}} = \pi ~~~~~~ \forall~~ k=j + 1 $$

      except \(\phi _{8_{y},7_{y}} = 0\) for the phase difference between neurons located at the mid of yaw actuators.

    3. (c)

      The phase differences between the neighboring neurons of yaw actuators are taken such that:

      $$\phi_{k_{y},j_{y}} = 0 ~~~~~~~~~~~~~ \forall~~ k=j + 2 $$

      except \(\phi _{9_{y},7_{y}} = \frac {3\pi }{2}\) and \(\phi _{10_{y},8_{y}} = \frac {\pi }{2}\) for the phase differences between neighboring neurons located at the mid of yaw actuators.

    4. (d)

      The phase differences between even pair of neurons of yaw actuator and neighboring pitch actuator are given as:

      $$\phi_{k_{p},j_{y}}= \pi ~~~~~~~~~~~~~ \forall~~ \text{even} ~~~ k=j + 2 $$

      While the phase differences between odd pair of neurons of yaw actuator and neighboring pitch actuator are given as

      $$\phi_{k_{p},j_{y}}= 0 ~~~~~~~~~~~~~ \forall~~\text{odd} ~~~ k=j + 2 $$

      Similar conditions are applied to the phase differences between neurons of seventh yaw actuator and neck actuator as follows:

      $$\phi_{1_{N},13_{y}}= 0, ~~~~ \phi_{2_{N},14_{y}} = \pi $$
    5. (e)

      On the other hand, the phase differences between neurons of first yaw actuator and first pitch actuator are taken such that:

      $$\phi_{1_{p},1_{y}}= 0 ~~~~ \phi_{2_{p},2_{y}}= -\pi $$
    6. (f)

      The phase differences between neurons of neck and head actuators are taken such that:

      $$\phi_{1_{H},1_{N}} = \phi_{2_{H},2_{N}} = 0 $$

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Manzoor, S., Cho, Y.G. & Choi, Y. Neural Oscillator Based CPG for Various Rhythmic Motions of Modular Snake Robot with Active Joints. J Intell Robot Syst 94, 641–654 (2019). https://doi.org/10.1007/s10846-018-0864-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10846-018-0864-y

Keywords

Navigation