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, sidewinding, twostepconcertina and fourstepconcertina 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 sidewinding 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 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$ 199
This is the net price. Taxes to be calculated in checkout.
References
 1.
Lilly white, H.B.: How Snakes Work: Structure, Function and Behavior of the World’s Snakes. Oxford University Press, London (2014)
 2.
Hirose, S., Yamada, H.: Snakelike robots machine design of biologically inspired robots. IEEE Robot. Autom. Mag. 16(1), 88–98 (2009)
 3.
Hopkins, J.K., et al.: A survey of snake inspired robot designs. Bioinspir. Biomim. 4(2), 021001 (2009)
 4.
Crespi, A., et al.: Amphibot I: an amphibious snakelike robot. Mechatronics 50(4), 163–175 (2005)
 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 snakelike robot active cord mechanism Slime model 1 ACMs1. J. Rob. Mechatronics 20(2), 302–310 (2008)
 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 CPGinspired control models and system implementation. IEEE Transactions on Neural Networks and Learning Systems 25(3), 441–456 (2014)
 11.
RostroGonzalez, H., CernaGarcia, P.A., TrejoCaballero, G., GarciaCapulin, C.H., IbarraManzano, M.A., AvinaCervantes, J.G., TorresHuitzil, C.: A CPG system based on spiking neurons for hexapod robot locomotion. Neurocomputing 170, 47–54 (2015)
 12.
Yu, H., Gao, H., Ding, L., Li, M., Deng, Z., Liu, G.: Gait generation with smooth transition using CPGbased locomotion control for hexapod walking robot. IEEE Trans. Ind. Electron. 63(9), 5488–5500 (2016)
 13.
Zhong, B., Zhang, S., Xu, M., Zhou, Y., Fang, T., Li, W.: On a CPGbased hexapod robot: AmphiHexII with variable stiffness legs. IEEE/ASME Trans. Mechatron. 23(2), 542–551 (2018)
 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)
 15.
Wu, X., Ma, S., et al.: Adaptive creeping locomotion of a CPGcontrolled snakelike robot to environment change. Auton. Robot. 28(3), 283–294 (2010)
 16.
Wu, X., Ma, S.: CPGbased control of serpentine locomotion of a snakelike robot. Mechatronics 20(2), 326–334 (2010)
 17.
Nor, N.M., Ma, S.: A simplified CPGs network with phase oscillator model for locomotion control of a snakelike robot. J. Intell. Robot. Syst. 75(1), 71–86 (2014)
 18.
Bing, Z., et al.: Towards autonomous locomotion: CPGbased control of smooth 3D slithering gait transition of a snakelike robot. Bioinspir. Biomim. 12(3), 035001 (2017)
 19.
Zhang, D., et al.: Smooth transition of the CPGbased controller for snakelike robots. In: IEEE International Conference on Robotics and Biomimetics (ROBIO), pp. 2716–2721 (2017)
 20.
Wang, Z., et al.: CPGinspired locomotion control for a snake robot basing on nonlinear oscillator. J. Intell. Robot. Syst. 85(2), 209–227 (2017)
 21.
Manzoor, S., Choi, Y.: A unified neural oscillator model for various rhythmic locomotions of snakelike robot. Neurocomputing 173(3), 1112–1123 (2016)
 22.
Manzoor, S., Choi, Y.: Recurring sidewinding 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)
 24.
Liu, P., Yu, H., Cang, S.: Modelling and dynamic analysis of underactuated capsule systems with frictioninduced hysteresis. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 549–554 (2016)
 25.
Liu, P., Yu, H., Cang, S.: Geometric analysisbased trajectory planning and control for underactuated capsule systems with viscoelastic property. Trans. Inst. Meas. Control. 40(7), 2416–2427 (2018)
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
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Electronic supplementary material
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:
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.
In serpentine and sidewinding 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.
For twostep and fourstep 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.
Serpentine Motion:

(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 $$ 
(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 sinewave 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.

(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 $$ 
(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 $$ 
(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 $$

(a)

2.
Sidewinding Motion:

(a)
The sidewinding is a nonplaner 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 $$ 
(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 sinewave can be generated by snake body during sidewinding motion.

(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 sinewave form.

(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} $$ 
(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.

(a)

3.
TwoStep Concertina Motion:

(a)
Like serpentine motion, twostep 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 $$ 
(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 $$ 
(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.

(a)

4.
FourStep Concertina Motion:

(a)
Like serpentine and twostep concertina motions, fourstep 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 $$ 
(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.

(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.

(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 $$ 
(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 $$ 
(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 $$

(a)
Rights and permissions
About this article
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) doi:10.1007/s108460180864y
Received:
Accepted:
Published:
Issue Date:
Keywords
 Neural oscillator
 Modular snake robot
 Central pattern generator (CPG)