GithubHelp home page GithubHelp logo

yechenzhou / snake-robots-lateral-undulation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quan-dao/snake-robots-lateral-undulation

0.0 0.0 0.0 3.94 MB

This is the revised version of the programs I write for my Bachelor Thesis. My thesis is about the control of snake robots Lateral Undulation gait.

Python 100.00%

snake-robots-lateral-undulation's Introduction

snake-robots-lateral-undulation

This is the revised version of the programs I wrote for my Bachelor Thesis, which is about the control of snake-like robots Lateral Undulation gait. The simulation of my snake-like robot (Fig.1) controlled by this program is carried out in the Virtual Robotic Experiment Platform (V-REP). In Fig.1, blue rectangles denote passive wheels attached to links' belly to result in the anisotropic friction force exerted on the robot by terrains.

Fig.1 My snake robot and its configuartion

Control Plan

To tackle the big problem of controlling snake-like robots Lateral Undulation gait, I first targeted four sub problems (listed in Fig.2) that makes up the big one. The solution of each sub problem is built on top of the previous in the order indicated by the blue arrow.

Fig.2 Control plan

Create rhythmic motion among the robots' joints

Like their biological counterparts, snake-like robots periodically undulate their body side way to gain forward motion. This macroscopic motion is created when every joint oscillates at the same frequency with constant phase lag, compared to the adjacent joints (i.e. move rhythmically). To produce such motion among robots' joints, I used the network of Central Pattern Generators (CPG) [1,2] displayed in Fig.3.

Fig.3 CPG network

In Fig.3, a circle is a CPG associated with the joint which name is written in it, while an arrow represents a connection go from the CPG i (in the arrow base) to the CPG j (in the arrow tip). This connection is described below.

In this equation, is the phase of CPG i. v, w are respectively frequency parameter and coupling strength. is the phase lag of the connection and is equal to the value written on the arrow representing the connection. The output of CPG i () which is used as the reference of the angular position of joint i is

Calculate robot's direction of motion

The direction of lateral undulation gait is the symmetrical line of snakes' body. Using this idea, I calculate the direction of my robot motion by finding the symmetrical line of the sets of center of mass (COM) of my robot's links. This symmetrical line can be found using the SVD on the matrix P defined below. The eigenvectors resulted by the singular value decomposition of matrix P form a local frame named the Virtual Chassis [3].

In matrix P, denotes the coordinate of COM of link i, and is the mean of the set of all links' COM.

All the coordinates presented in matrix P are computed relative to the robot first link because this calculation is based only on robot internal information which is the angular position of robot's joints. Such calculation can be carried out using Denavit-Hartenberg convention.

Steer robot crawling motion

Robot crawling direciton can be steered by chaning the symmetrical line of the whole robot body. This is done by integrating the Amplitude Modulation Method [4] into CPGs' output as following

The reason I used this method is the Linear-Time Invariant (LTI) relationsip between the control signal () and robot turning angle [4,5].

Direction control scheme

At this point, I have derived the solution for the first 3 sub problems displayed in Fig.1, so I am going to integrate them into a control scheme to completely solve the direction control problem of snake robots' Lateral Undulation gait. This control scheme is shown in Fig.4.

Fig.4 Direction control scheme

The Direction controller is a simple proportional controller as the equation below because of the LTI relationship mentioned in the previous section.

In this equation, are respectively the actual and the reference value of robot crawling direction. The significace of this control scheme is that it can abstract snake-like robots which have many degrees of freedom as a SISO system. This help us to steer snake robots as easy as steer a differential-drive wheeled vehicle.

Performance of direction control scheme

The performance of the direction control scheme is demonstrated in the line following problem described by Fig.5.

Fig.5 Line following problem

The robot progress of following the desired trajectory (the purple line) is shown in Fig.6.

Fig.6 Robot line following progress

The evolution of the reference and actual value of robot crawling direction during this progress are respectively represented by the dash green and the solid blue line in Fig.7. In addition, the solid purple line in this figure denotes the value of the direction of robot head link (i.e. the first link). It can be seen that the purple and the green line are relatively match, which means the head of robot was being pointed toward the direction which robot was heading for.

Fig.7 Robot line following performance

References

[1] A. Crespi, A. Badertscher, A. Guignard, and A. J. Ijspeert, “AmphiBotI: An amphibious snake-like robot,”Robotics and Autonomous Systems,vol. 50, no. 4, pp. 163–175, 2005.

[2] A. J. Ijspeert and A. Crespi, “Online trajectory generation in anamphibious snake robot using a lamprey-like central pattern generatormodel,” inProceedings 2007 IEEE International Conference onRobotics and Automation. IEEE, apr 2007, pp. 262–268.

[3] D. Rollinson, A. Buchan, and H. Choset, “Virtual chassis forsnake robots: Definition and applications,”Advanced Robotics,vol. 26, no. 17, pp. 1–22, 2012.

[4] Changlong Ye, Shugen Ma, Bin Li, and Yuechao Wang, “Turning andside motion of snake-like robot,” inIEEE International Conferenceon Robotics and Automation, 2004. Proceedings. ICRA ’04. 2004,vol. 5, no. January. IEEE, 2004, pp. 5075–5080.

[5] X. Wu and S. Ma, “Neurally controlled steering for collision-freebehavior of a snake robot,”IEEE Transactions on Control SystemsTechnology, vol. 21, no. 6, pp. 2443–2449, 2013.

Note:

  • This program runs on Windows.

  • The vrep sence needs to be opened first. But, don't hit the play button. The snake_main_rev.py will activate this sence.

snake-robots-lateral-undulation's People

Contributors

quan-dao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.