Snake Movement

Our snake exhibits three types of movement: Concertina, Serpentine, and Sidewiding - all inspired by real snake behavior.

Large image

Serpentine Motion

A classic snake motion, serpentine motion relies on friction between the snake and the ground to push it forward. We recreated this movement with a mathematical model with parameters that are tuned based on the snakes length, number of segments, speed, and direction of motion. The image below shows a simulation in MATLAB of direction of the after adjusting the direction parameter.

Large image
Large image

Concertina Motion

Concertina motion resembles inchworm motion, and is used by snakes when they have objects to push off of tp propel them forward. Our snake pushed off of the floor, and was propelled by the friction between the head and the rug.

Large image
Large image

Sidewinding Motion

Sidewinding motion moves the snake perpendicular to the direction that it would be moving in if it were using serpentine motion. It lifts some parts of its body while pushing off of the ground with the others, creating a distinct trail behind it. Snakes use this form of motion in the desert when they need to move up slopes covered with sand. The image below shows an early sketch of sidewinding motion being translated to our snake's mobility.

Large image

Application to the Robot

After reading researchers' work on how snake locomotion can be applied to robotics, we calculated how the motors should move to replicate snake motion in our robot. This video shows successful execution of serpentine motion.

References

Akbarzadeh, Alireza, Safehian, Jalil, Safehian, Javad, and Kalani, Hadi. "Generating Snake Robot Concertina Locomotion Using a New Dynamic Curve". International Journal of Modeling and Optimization, Vol. 1, No. 2, June 2011 https://www.ijmo.org/papers/24-T0125.pdf

Ivan Virgala, Martin Varga, Peter Ján Sinčák, Tomáš Merva, Roman Mykhailyshyn, Michal Kelemen, Mathematical framework for snake robot motion in a confined space, Applied Mathematical Modelling, Volume 132, 2024, Pages 22-40, ISSN 0307-904X, https://doi.org/10.1016/j.apm.2024.04.020.

Burdick, J.W. & Radford, J. & Chirikjian, Gregory. (1993). 'Sidewinding' locomotion gait for hyper-redundant robots. Advanced Robotics. 9. 101 - 106 vol.3. 10.1109/ROBOT.1993.291864. https://www.researchgate.net/publication/3556554_

Software Setup

We communicated with our Raspberry Pi and Picos through a linux based terminal on a Windows machine. Our initial plan was to use USB connection between the Windows machine and Picos but it proved to be unreliable. We experienced a multitude of connection issues, such as changing ports, inconsistent usb detection, and errors when uploading firmware. Given that these issues sprouted from passing the connection to the Linux terminal through the Windows terminal, we shifted to using a Linux machine in hopes of reducing the possibility of instability.

This shift, in theory, would have allowed us to communicate directly with the Picos. Unfortunately, we continued to have connnection issues. With the deadline approaching, the Raspberry Pi seemed to be our only hope. Luckily, we were able to establish a reliable connection via SSH within a few minutes! We did not have connection issues for the remainder of the project

MicroPython and Firmware

Our Pico Ws were connected to the Pi via usb for the first week of testing. We then shifted to wifi based connection to avoid chord and wire pulling. The Picos were flashed with micropython firmware to allow python files to be communicated through the linux terminal.

We changed the firmware on our Picos depending on their needs. Our soil sensor Pico required us to flash Circuit Python while our camera Pico required us to flash C, as we communicated through Arduino IDE.

Pico and Pi Communication

Connected to the Pi via SSH, we were able to push python scripts to the Picos from our terminal. All mathematical computations for the snake's movement were performed by the Pi. These computations were then converted to serial data and communicated to the Picos via usb or wifi.

Dashboard

Mockup dashboard for sensor data and location. Updates live based on a csv file read more here.