Snake Robot Locomotion
From Experimental Robotics
Theories of SnakeBot Locomotion
Julian’s Locomotion Theory (JLT)
Starting with the basics, a servo alone can either move up or down. Figure 4.1.1.
With three servos we can create a triangular shape (figure 4.1.2). This configuration takes up less room than three servos lying flat on the ground. This is the key in allowing the Snakebot to move forward.
The difference between the flat snake and the triangular formation is d. This d is in fact our distance gain. Following from figure 4.1.3, the action of lifting B produces a pull F1 and opposite pull F2. If the properties (i.e: mass & friction) of servos A and C are equal, then both are going to be pulled horizontally towards servo B by d/2. When both servos A & C are pulled, the Snakebot doesn’t move forward. The aim is to anchor servo C so to drag servo A the entire distance d as shown in the perfect scenario of figure 4.1.2. In reality, if servo A was the tail and C being the set of servos reaching to the head, then we get a distance d` ~ d since the mass of A is much smaller and hence easier to pull than the combined masses of the rest of the servos.
The next challenge is transferring the distance d to the head of the snake to achieve speed. Starting from figure 4.1.3, simply lowering servo B doesn’t work since Newton’s third law applies:” For each action there is an equal and opposite reaction”. Lowering servo B is the opposite of lifting B, thus losing our gained distance d. To keep d we must raise servo C whilst lowering servo B; see figure 4.1.4.
Continuously transferring the gained distance d throughout the snake we get this sinusoidal walk, otherwise known as the vertical wave motion.
The thought of this walk was inspired by having two simultaneous vertical and horizontal waves going through Snakebot. It was imagined that this would produce a sort of Archimedean screw. The principle of the Archimedean screw is to force the medium to advance around the screw. Following this reasoning; Snakebot was thought to be able to push on the ground in a similar fashion as in figure 4.1.5.
It was thought that the Snakebot would follow the principles of J.L.T with the addition of the horizontal motors pitching in. The motion consisted of raising servos A and B and letting the snake destabilize leaving A & B to fall to the side as shown in Figure 4.1.5. Once fallen, the next motors would rise and the motion would continue moving the snake forward if not a bit sideways.
This reasoning is flawed on two counts 1. The Snakebot’s servos aren’t perfect spheres. When servos A&B are meant to fall they do not and the Snakebot falls out of synchronous. The result is that the Snakebot thrashes around. 2. The Archimedean screw was designed to propel a fluid forward inside of itself. It wasn’t designed to move forward. This misconception arose because when looking at an Archimedean screw one gets the illusion that the blades are actually moving forward. An Archimedean screw rotates and as such it would travel sideways when touching ground.
The group retested the helix walk once the feet were attached to the snake and got a pleasant surprise. As stated in the second count of flawed reasoning, the Snakebot achieved sideways motion at a fast pace. This is because it was balanced by the feet.
This fast strafing motion is achieved by moving large portions of the snake to the side. Assume for the following example (Figure 4.1.6) that motors can move in all directions. Servo B is lifted in the air by A and is moved left. In turn servo C is lifted by B and moved to the left. This method avoids pushing the Snakebot in an undesired direction when dragging a servo to the side. Now we have as many servos on the right of the Snakebot as in the center. Now it has the required strength and friction on the ground to easily drag the remainder of the servos to the left.
As its name indicates, this is another theory about strafing. The group has done some tests with this walk but since the group doesn’t need strafing, further research was stopped. This walk consists of moving one motor to the side one by one. Similar to the stabilized Helix Theory, each servo must be lifted in the air before being moved right or left. To iterate, because of the friction of the ground, moving a servo without lifting it first, creates an opposing force. Please refer to Figure 4.1.7 for an example of the theory.
A bit of research was conducted to see whether the Snakebot would be able to slither like a real snake. This is impossible since a snake uses its coils to push off from the ground. Conversely, all our movement theories consist of transferring distance from the tail to the head. None the less, the group was prepared to try out some horizontal waves to mimic the effect. This would be done by initially setting up two waves as described in J.L.T. Unlike J.L.T, the waves are horizontal rather than vertical. Also, they are set up on opposite sides of the snake. Finally the waves are propagated through out the snake like J.L.T. See figure 4.1.8.
The issue with this walk is two fold. The servos are barely powerful enough to lift a section of the Snakebot when a horizontal wave passes through, let alone several waves simultaneously generated in different sections. The second issue is that the Snakebot moves sideways when walking because of the nature of the horizontal waves (they move the snake sideways) even when there are two opposite waves going through the snake.
In conclusion, the Snakebot is more like a Caterpillarbot but the name Snakebot remains for effect.
It has been realized that the Snakebot is more like a caterpillar than a snake. So the group decided to try inching to gather some insight into caterpillar movement. Inching is a type of movement that caterpillars use. They lift their back ends as high as they can and propel themselves forward. They do this by anchoring their tail in a leaf or in the ground and pushing forward. Like in J.L.T, the friction on the tail is larger than the friction on the rest of the body. So the easiest direction the caterpillar can move towards is forward since the tail is anchored and won’t budge. This is very important as, later, it shall be revealed why. The setup of this theory can be seen in figure 4.1.9.
In fact, figure 4.1.9 is false. Unlike a caterpillar, Snakebot can’t anchor its tail in the ground. Thus the friction at the tail of the snake is much less than the friction along the rest of the Snakebot’s body. Hence, it stays on the spot. For every action there is an opposite and equal reaction. The action of lifting a servo has the opposite reaction of lowering it. Both actions cancel each other out and d is lost.
The solution to this problem is to lift a servo near the head of the Snakebot rather than the tail. With this method, the servos from the tail to the lifted servo are used as friction. Dropping the mountain of servos in one go produces a force. This force propels the Snakebot forward _ not by much.
Before the group attached the feet to the Snakebot, the Snakebot was very unstable. During a walk, one of the group members had to hold the Snakebot straight so that it wouldn’t tip over. To resolve this issue the group eventually bought feet, but before that, the group used accordion walk.
Accordion walk uses the same principles as J.L.T, but it presets the horizontal motors in an accordion formation. See figure 4.1.10.
In this formation the Snakebot can’t tip over as the horizontal motors help keep stability.
Turning is quite simple. A turn angle Θ must be chosen and the speed of the snake must remain constant. When the snake decides to turn we call that the Decision Point. When a horizontal servo (B) reaches a decision point then its angle is immediately set to Θ and the next servo (C) is set to zero degrees. This is shown in figure 4.1.11.
The Snakebot’s speed must remain constant so that each servo turns precisely on the Decision Point. If there is a large enough variance in speed, the turn may occur before or after the desired Decision Point. In reality this may be the difference between avoiding a wall or overshooting into a hole. See figure 4.1.12.
Theories of Speed
According to the graphs in chapter 3, a higher angle Θ always gives the best speed. Looking at figure 4.1.3 it is easy to see why. The higher the angle Θ the more it drags servo A thus increasing d. Since Speed = Distance (d) / Time, any increase in d will always result in a greater speed.
Other ways to increase our speed would be to decrease the mass of servo A so to make is easier for B to drag A. Looking at the snake there is little that can be done to achieve this. Decreasing the friction of A isn’t a solution either since we need a solid anchor in A when doing the maneuver in figure 4.1.4. If servo A was frictionless, B would push A back when being lowered, losing valuable distance in d.
Since very little can be changed in the snake’s technique, other ways of enhancing our speed must be looked into.
1. Nails: This method puts small nails under the snake so that when servo B in figure 4.1.4 is lowered, it gives an extra push forward. The group of 2005 is known to have implemented this with success. We don’t think it practical or fruitful. The distance gain achievable is a function of the size of the nail. In other words, not much. In addition, we don’t whish to leave scratch marks on the desks or on our hands as a souvenir.