General Misc > Robot Videos

Question about building a robot snake.

(1/2) > >>

HI GUYS, I am currently working on a project to build something from what we have learned so far or what we already know. This course is about Computer Organization, and we have learned all the theoretical parts of the digital design to practical stuffs. We also had to use verilog during our lab. We came across with incorporating verilog with DE2 BOARD from ALTERA. My concern/question is, i am trying to build a snake robot. It's going to be 8 segment and I just don't know what kind of materials that i need to buy and if it's necessary to use DE2 Board and verilog to build this robot. The robot is going to basically wiggle around place and try to make it fizzle like actual snake does. What are your advice or basic guidance to approach to this. Thanks.

There are two challenges:
1) Build the actual robot, mechanically and electrically.
2) Make the robot do what you want, electronically and software-wise.

You can use an FPGA for 2) if you want. It would probably be easier to use a microcontroller, but if the point is to use an FPGA in a project, then do that :-)
The first point is actually pretty hard. You might want to look at an easy-to-integrate servo like the Robotis AX-12, which also comes with brackets that you can link up: servo - bracket - servo - bracket - ... will make a chain of 8 servos. Note that each servo only turns around a single axis (like a hinge,) whereas a typical snake can flex in two directions (like a universal joint.)
Another, novel, way of doing a snake would be to build it out of universal joints, and use something like muscle wire to actuate those joints and drive them to turn/twist. I've never seen it done, but it'd be an interesting experiment :-)

I need clarify myself. So what you are saying is there are 2 parts of going with this project. First, building actual robot using components and then connect it to FPGA to make it move the way I want to? My idea was to have about 16 wheels and then have it wiggle by going  left or right. Also, how many motors and batteries would I need for this? Lastly, do  you think it's wise to use Finite State Automata? or is it the only way?

I also forgot about Software part. I would have to use verilog for this. We have learned to write flip-flop, multiplexers, FSA, and more and then displaying it on DE2-board. But, I just can't think of where to start of writing the code. More precisely, how to incorporate all those stuffs into my snake robot movement. :(

If you use wheels, you'd want individual control of each wheel that needs to be able to drive. That would mean 16 motors. Luckily, you can probably get away with cheap "hobby" motors. You'd also need 16 H-bridges to drive those motors. 8 L293D ICs would probably solve that. A single battery is enough; you can run a power bus down the length of the snake.

I'd suggest looking at servos (perhaps even cheap hobby servos) to turn the links of the snake, to make it wiggle more like a real snake; that may actually be simpler than trying to control 8 pairs of wheels presumably coupled with free-moving hinge linkages.

For the behavior, you again have to break it down into a hierarchy. There's signals to make the motors go backwards/forwards the way you want. Then there's the thing that decides which motors to go backwards/forwards to achieve a particular kind of wiggle. Then there's the thing that decides what kinds of wiggles to do in what order to achieve a high-level behavior like locomotion.

FSAs can achieve each of those behaviors if you want. You'd probably want real time (elapsed time) as one input to the modules, to say "to wiggle left, drive this motor forward at 50% speed for 200 milliseconds, and this motor ..."


[0] Message Index

[#] Next page

Go to full version