Legged Robot 9 Servos (hexapod type)

A robot like a hexapod but only has 4 dual-axis motions, the two center legs only have 1 axis to lift them up. Based on Arduino Nano and ESP

Similar projects worth following
This is my first robot project, I've looked at some before but I never really got down to building something/programming gaits, etc... it's very basic but it will serve as a platform for learning/future additions.Right now it just has basic Forward, Rotate Left, Backward and Rotate Right commands. That may be all it can do aside from speeding up/slowing down. I intend to add some form of autonomy and I'll also use this platform for telemetry eg. interfacing with IMU.The software serial at 115200 baud is nasty, as a result I just used a single character for commands with length/range checking.

Parts list

  • 9g servo x9
  • Arduino Nano
  • ESP8266-01
  • 5V linear regulator
  • 3.3V linear regulator x2
  • 10K resitor
  • UBEC for battery pack
  • 9.6v 8cell 2400mAh NiMh battery pack
  • solderable breadboards
  • breadboards
  • breadboard wires
  • 3D printer/filament
  • hot/super glue


  • Moving onto another project, will improve this design in the future

    Jacob David C Cunningham09/01/2020 at 23:59 0 comments

    Mainly because it's too dumb/can't carry more weight. So if you don't watch it and it's not running in a place where surfaces have a perfect edge to be detected/reflection then this robot will just run into it.

    There were some goals I did not hit in here, like the telemetry for example, it would not have been hard to get it from the robot to the phone/web but I have not interfaced with an IMU before so that'll be my next thing.

    My next project is a hybrid sensor/power system all in one but it's nothing really advanced/will only drive a basic 2-servo wheeled "tank" type robot. But the main focus is a combination of OpenCV(camera edge detection) and range averaging by depth(single point "Lidar" plus the ultrasonic sensor on a scanning pan-tilt system). I say all that but we'll see how it goes. The two-wheeled robot is able to carry more weight. For example this legged robot here I put an 8 oz weight on it and the robot could not carry it... the new hybrid sensor module with all its parts will weigh  at least 6 oz no body... so yeah. But it will be cool, will have IMU inside, ADC... it'll be interesting. I'm looking forward to the software aspect, all powered by a Pi Zero. It's definitely going to be slow/not intended for say flying through a forest but yeah.

    Here's some content updates for this project though, I made a lazy MS Paint schematic that's on the repo.

    Last video, it's pretty fast relatively... I don't know if this is the fastest it can go.

    I'll post about the new project after I have a prototype built... physically it's not hard to build, I just have to model all the parts/build a case for it, design the combined pan-tilt system, etc... but ideally I will be able to just mount it to this old body I have.

    This literally would carry an Arduino Mega 2560 on it ha and a chonk 3000mAh 7.2v 6 cell NiMh battery

    Overall it was a good project, learned a lot.

  • Added ultrasonic sensor, starting to work on mobile controller

    Jacob David C Cunningham08/29/2020 at 02:15 0 comments

    Added an ultrasonic sensor to the front, had to use an analog pin as ran out of digital pins. Again it has the issue of needing a near-perfect surface to hit but it is surprisingly very accurate in terms of distance measurement. The program is basic, it will turn left or right(alternate) requiring up to 5 turns as that means 90 degrees. The robot uses about a 14" x 14" box. See the short video of the sensor working as well as the weakness of the servos/this design in general.

    Also working on the controller. Need to write the function to determine what quadrant you clicked, trick is it's rotated. Should be able to just use HTML/JS but the triangles are hacks so you can't really determine what you clicked on because all the triangles are squares and the last one overlaps the rest. The controller will be usable in landscape and portrait. I designed it in landscape first but I could see a one-handed approach being more desirable.

    I have this idea for a combined "backpack" sensor. It would require a secondary "computer" eg. an actual computer, a Raspberry Pi Zero.  I have a single-point "Lidar" thing I bought, I was messing around with it in the past, I was stripping servos for this pan-tilt mechanism for it(with modified feedback too). Anyway I would combine that with a vision system(single camera) that's doing basic edge detection and then using the single point Lidar as a quick depth probe... I don't know. At least this, I'll use Python/have more room to work with vs. an Arduino. I have some 2 cell batteries and a converter to go down to 5 volts, can build a little system with a Pi Zero. This is all talk, not sure how well it will actually go. I will keep the ultrasonic sensor as a main sensor as well. It does look good though so far.

    Something like this:

    Missing the pan/tilt part but yeah. "Phase-array" throw a buzz word in there, like a series of reflective mirrors, single point, use sequential delay to know which reflection it was... idk... Soy Tonto.

    Mostly I'm just annoyed how dumb the robot is, like "oh there's a chair leg in the way, I'm going to run into it". Will see, busy this weekend so probably won't get much done for this but trying to make it a priority.

    Edit: I decided to skip the fancy mobile controller design for now and got a basic controller working. Issue is the middle servo got so hot it melted the mounts it was attached to... so not sure if it's a bad servo or the servo was pulling so much load it got that hot. It's nuts, minutes later the plastic is still warm to the touch.

    Update next morning:

    I feel that disappointment in this project when you do a bad job. I have some buck converters may try that if there's a load issue... not sure if the UBEC can't do it. Maybe I'm just using cheap parts but mostly no math.

    Later in the day:

    It seems to do better after I lower the voltage from 6V down to 5V(for the 4.8V per servo) maybe that makes sense regarding lower peak current draw.

    I also noticed when the phone sleeps the websocket stops/gets slower(I think the setInterval call in JS maybe) as it still works but not as often. Anyway gives me some ideas, I have to fine tune the leg movements(servo positions/ranges). Also will give it "purposes" eg. "exploratory mode" which it'll just keep moving forward/using onboard obstacle avoidance ways.

    I'll continue adding onto it as a test bed provided it can still move.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates