User:Xeo Ann/ENES-100/Project 2: Bio-Inspired Makerbot Snake

Problem Statement
Open-source robots are robots that have the schematics and software available for the public. The idea of open-source products are to allow anyone to use and improve the products. Bio-inspired robotics implements designs from nature to solve an engineering problem. For this project, the team is asked to create an open-source bio-inspired robot that can be made using the makerbot and commercially available microcontrollers, motors, motorshields, etc.

Team Members
Batong, Jovy

Mwangachuchu, Renita Naveed, Hassan Peterson, Edward

Week1 Narrative
The team came together and discussed what type of animal we would like to mimic. With the limitations in mind (time, Makerbot size, price), the team decided to create a snake robot. The requirements are as follows: My task for this week is to do some research and development: design the robot and figure out the movement. I researched how a snake moves and found this video from the BBC. "The snake pushes at the point where it's body bends, and that propels it sideways. But if two opposite coils push at the same time, the sideways forces cancel each other out, and the snake is propelled forwards." This can probably be the first type of locomotion that we can attempt for our robotic snake. This siteshows more information about how snakes move. Other sites of interest are snakerobots.com, ModSnake, and a wikipedia article about Snakebots. Each ventral scale on the underside of a snake is connected to a pair of ribs. The scales are used to grip the surface and propel the snake forward. The muscles on the ribs are what contracts and expands in order to move the snake.
 * 1) The robot must be able to move on the ground and climb a certain height (steps, but not a table).
 * 2) The robot must be bio-inspired (act and move like a snake).
 * 3) The team must use the Makerbot for creating the chassis

Skeletal muscles work in pairs. When one muscle pulls, the other relaxes and the skeleton moves in the direction of the force. Snake muscles work in a different way, but we may be able to apply this same concept in order to make our snake robot move.

Using this information, the team has come up with two different ways of making the snake move. These two ways will be described in detail in the upcoming weeks.

Week2 Narrative
Because I have a spare Really Bare Bones Board Kit, I decided to solder it together for use as the snake's micro-controller. The RBBB measures 3 in. by 0.5 in. and can be modified to make it shorter.

Week3 Narrative
The prototype for the bones were not quite perfect. The problems are as follows:


 * The ball would not enter the socket. I melted four slits on the socket to force the ball in (the socket pieces still broke).
 * The socket could be made with "Angle of Chord" closer to 180 degrees (maybe 150 degrees as opposed to the original 120).
 * In the next build, the slits should be integrated instead of being cut out after the piece has been created.
 * The ball should probably be a full 360 degrees instead of a spherical segment.
 * The stem easily broke off.
 * This may be due to how 3dtin transferred over to the makerbot.
 * Possible fix: create it as a single object in 3dtin.
 * Use another program to create it to see if it has a similar effect.
 * Grooves for batteries were too small to hold a AA battery.
 * When making the object bigger on the makerbot software, we didn't account for the inner diameter.

The team has also been worried that all this work would amount to nothing. The snake may not be able to move.
 * This Snake Movement Video shows how snakes are able to move.
 * Their scales are smooth one way, but rough the other way. The roughness of the scales are able to grip the surface
 * Hassan's idea of having a grooved snake skin and filling the grooves with a rubbery substance should be able to simulate the rough part of the scales. We will have to think of a way to make it smooth. Perhaps a plastic coating at the front end of the rubber.
 * The snake does not stay on the ground as it moves. It lifts up the curved part of its body.
 * The bones have to be further modified to have it lift up in the same way the video shows. Currently we have the bones in this way in order to have it arch its body up in order to climb stairs.

To simulate how we will use the servos for the snake bot, Renita and I used cardboard as the snake 'skin' and duct tape for 'bones.' Renita programmed the servo to twist at a 180 degree angle. It is noted that the skeleton and bones must be bigger in order to hold the servos inside. We will also have to drill or melt holes into the bones to have the wires running through it.

The next step will be to prototype the bone movement using servos and duct tape bones while Ed and Hassan finish creating the skin and bones.

Week4 Narrative
Renita and I started working on the programming aspect while Ed and Hassan complete creating the skin and bones. We found information for basic servos on this site. Using that, we decided to create mock-ups of the skin and bones with cardboard in order to see how the servo would work.

Because the servo only moves at 180 degrees, they have to be placed in a specific orientation in order to have the bones move in the way we envision it to. A possible solution would be to have modules in the snake skeleton to hold the servos. Also, two servos are requires in order to have it move back and forth. Research on the Arduino shows that we will be able to program this, as long as the servos are receiving power from another source (the Arduino can only fully power 1 servo).

The snake skin is a little trickier. I created other mock-ups with plain paper and have had little success with having it rotate, since the servo moves 180 degrees, then comes back. A motor may be better for this.

Week 5 Narrative
Ed's third prototype of the bones were still structurally weak due to the software, as evidenced in the picture. Ben had similar problems while he was printing some objects out and figured out how to fix it with Autodesk. I am attempting to fix the bones by using autodesk as well, but with little success. I am still attempting to research how to use the Boolean modifier in Autodesk.

I also created a 3D model of the snake skin and am waiting for the Makerbot to come back online in order to print it (it was taken away to the Kittlemann room for an event.)

Week 6 Narrative
Renita, Ed, and I went ahead and created more mock-ups with cardboard and tape to figure out how to make the snake move. In this mock-up, we used motors instead of servos. The advantages of the motor would be its degrees of movement and its small footprint. the disadvantage would be how it requires a motor shield in order to run. The small footprint of the motor would be offset by the larger footprint of the Uno and motor shield. Research shows that certain types of motors can be safely powered through the Arduino using smaller hardware Adafruit has a good tutorial on how this can be accomplished.

This site shows more information about motors.

Week 7 Narrative
A different program was used to create the ball and socket joint. The program (Autodesk 3DS Max) is free for students and is useful for creating and editing 3-dimensional objects. [This youtube tutorial] is good as a starting point of how to create objects and subtract with ProBoolean functions.

With Autodesk, I created another version of the ball and socket joint. As evidenced in the mesh images, the joint does not have the mesh going into each object, which was what created the 'holes' in our final 3D Printout. A trial print has not been conducted. Future students for this project should try printing a similar object using Autodesk 3DS Max.

Decision List

 * 1) What type of animal must we mimic?
 * 2) Bio-inspired or just create a regular robot?
 * 3) What materials are required?
 * 4) What is the end product?
 * 5) Using a servo or a motor, which is better?

Material List

 * 1) Servo
 * 2) Motors
 * 3) Makerbot

Software List

 * 1) Makerbot Software
 * 2) 3d Tin
 * 3) Google Sketchup
 * 4) Gimp
 * 5) Autodesk 3DS Max

Time
Approx Time Spent: 145 hours.

Next Steps
List on pros and cons for servo and motor.