Making Robot Snakes That Slither, Sidewind, And Strike

Robot snakes on the grass

[Will Donaldson] has been making robot snakes of all sorts. One of his snakes hugs the ground, slithering across it with a sine wave motion. Flipping it on its side and calling different code, that same snake also moves like an inchworm. Another of his snakes lifts parts of itself upward to move sideways across the ground, again using sine waves.

3D printed scales
3D printed scales

At first, his slithering snake would only oscillate in place on the floor. Looking more closely at biological snakes, he found that part of the reason they moved forward was due to their scales. The scales move smoothly over the ground in one direction but grip when pushed backward or sideways. He also found work done at Harvard University where they combined pumped air and papercraft to make scales which change shape. And so [Will] designed and 3D printed some scales for his snake. However, as you can see in the video below, they didn’t work on carpet.

His success came when he added wheels to each segment. They didn’t work like a car, there was no engine turning the wheels. Instead, they acted more like scales, rotating freely in one direction and gripping when pushed sideways. This success also allowed him to add a parameter to his code for turning left or right.

As we said above, he can flip the ground hugger sideways and run it as an inchworm and he also has a working sidewinder snake variation. The sidewinder can even lift up its head and strike like a cobra. Check out his hackaday.io page if you want to make your own. He’s provided STL files, code, and construction details.

[Will] has a lot of future plans for his snakes. Currently, they’re tethered to a modified ATX power supply but he’d like to incorporate LiPo batteries into the snakes instead. His original goal was to make a tree climbing snake like the one by the Biorobotics lab at Carnegie Mellon University (updated link for the article) but his first snake wasn’t long enough. He still plans on pursuing that as well as an underwater electronic eel. There seems to be no limit to the things he can try. For now, check out the video below to see his successes and his failures so far. Maybe you even have some suggestions for those tricky scales. The undersides of his snake’s segments do seem modular, lending themselves to experimentation.

5 thoughts on “Making Robot Snakes That Slither, Sidewind, And Strike

  1. not that it’s gonna make much of a difference, but one bug immediately caught my eye is this :

    for (int i=0; i<361; i++)

    that’s going to introduce a little bump on every complete cycle of the for loop. (.., 358, 359, 360 = 0 , 0, 1, 2, 3, ..)

    also to have a much more consistent waveform, you might want to use a timer. (calculate the next sample in the timer isr and set the new servo pwm value.)

    1. yes, running trigonometry functions inside the isr is probably not going to work out for anything above a few Hertz, but that probably won’t be an issue for this project.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.