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.
Similar content being viewed by others
References
Lilly white, H.B.: How Snakes Work: Structure, Function and Behavior of the World’s Snakes. Oxford University Press, London (2014)
Hirose, S., Yamada, H.: Snake-like robots machine design of biologically inspired robots. IEEE Robot. Autom. Mag. 16(1), 88–98 (2009)
Hopkins, J.K., et al.: A survey of snake inspired robot designs. Bioinspir. Biomim. 4(2), 021001 (2009)
Crespi, A., et al.: Amphibot I: an amphibious snake-like robot. Mechatronics 50(4), 163–175 (2005)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Crespi, A., Ijspeert, A.J.: Online optimization of swimming and crawling in an amphibious snake robot. IEEE Trans. Robot. 24(1), 75–87 (2008)
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)
Wu, X., Ma, S.: CPG-based control of serpentine locomotion of a snake-like robot. Mechatronics 20(2), 326–334 (2010)
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)
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)
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)
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)
Manzoor, S., Choi, Y.: A unified neural oscillator model for various rhythmic locomotions of snake-like robot. Neurocomputing 173(3), 1112–1123 (2016)
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)
Sksguchi, H., Kuramoto, Y.: A soluble active rotator model showing phase transitions via mutual entrainment. Lect. Notes Phys. 76(3), 576–581 (1986)
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)
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)
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
Corresponding author
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:
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 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.
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.
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 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.
-
(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.
Side-winding Motion:
-
(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 $$ -
(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.
-
(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.
-
(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.
Two-Step Concertina Motion:
-
(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 $$ -
(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.
Four-Step Concertina Motion:
-
(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 $$ -
(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). https://doi.org/10.1007/s10846-018-0864-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10846-018-0864-y