Close
0%
0%

Dogbot

A quadrupedal walking robot

Public Chat
Similar projects worth following
The DogBot project aims to demonstrate that you can build a walking robot that can work in human scale world for $1000. With the costs of 3D printing bringing part production down, and brushless motors and short run electronics prices falling and easily ordered, it should be possible to build something to rival Boston Dynamics’ Spot or MIT’s Cheetah, without the $100k+ price tag.

Why do this? There are lots of reasons - mainly because it’s a seriously fun experiment, but also it might show that with the cost of hardware reduced and open sourced, we can get collectively closer to a viable way to assist rescue workers in disaster situations, or just navigate our built environment in a way that wheeled robots can’t do. The DogBot also provides a platform for AI researchers to put their theory into practice, somewhere they can test that their simulations work under the difficulties and irregularities of real world conditions. If more people can test on this platform, without first having to find a research grant, we think the field will start to move forward a much faster pace. When you think about it, the industrial revolution and the current AI revolution have both benefited from rapid iterations by multiple participants - a lower cost robot means more reasons to iterate in the physical world.

We hope this project acts as a catalyst for this field. The next step is applying the same logic to humanoid robots, but a nice place to start is with man’s best friend.

To give you a taste of what it will look like once it is working, here is a gazebo simulation of a trot.

Everything in the project that I have created is licensed under the creative commons attribution license.  The firmware for the motor controller uses chibios which uses either GPL3 or free commercial license and Apache 2.0 License (See http://www.chibios.org/dokuwiki/doku.php?id=chibios:licensing:start for details). The firmware is still very much work in progress, though care will be taken to make sure the final code can be used freely in open source projects.

  • Improved Gait

    Charles Galambos07/11/2018 at 19:58 6 comments

    So after a bit of tinkering with the gait parameters I managed to come up with something that works much better.   It is still a fixed gait animation without any feedback, but it is stable and robust against disturbances.  Next is to add some feedback from an IMU and the torque from the motors.

  • First baby steps

    Charles Galambos07/09/2018 at 15:10 8 comments

    We've been trying some simple gaits animations to prove the robot can walk independently.  These run through a fixed set of movements without any feedback, this is the first one that worked so there is a huge room for improvement.  It falls over in the end of the video because of a problem with one of the motor controllers, it shouldn't take too long to track down and sort out.

  • How fast can the legs move?

    Charles Galambos07/06/2018 at 14:16 7 comments

    A brief update. I've just finished working on a new version of the motor control firmware to give more precise, faster control.   Here is an example of the results:

    The motor controllers are now estimating the desired velocity from successive positions, which keeps the position on target without increasing the latency in processing position commands.  The controllers also now have the option for a feed forward term for the motor torque, but that isn't used here. 

  • Standing and squatting

    Charles Galambos06/29/2018 at 10:54 2 comments

    With a new larger motors and a more rigid design, this video shows it standing up and squatting down under its own power.  The legs are still a little springy, but it should be possible to compensate for this in software.

  • Testing the motor controller and gear box

    Charles Galambos09/09/2017 at 16:59 0 comments

    So after quite a bit on work on the motor controller firmware, things are starting to come together.     Though the motor position estimation isn't working quite as well as I would like, it is good enough to control the motor and drive it reasonably efficiently.  There is also quite a bit more parameter tuning needed on the PID controllers, but I will wait until a full leg is assembled so I can tune it with a more realistic load.

    In the following video I am using a slider on a GUI to control the position of the motor.  Here I am using a single 14.8V battery.  I plan to use two of these in series to provide a 30V supply to reduce the current in the supply wiring, as you can see from the following video speed doesn't look like it will be a problem! 

  • Simulation in Gazebo

    Charles Galambos07/22/2017 at 08:20 0 comments

    Well designing the robot is all very well, but can it walk?  I decided to build a robot simulation using Gazebo, http://gazebosim.org/.   It would have been good to do this earlier in the project as it may have helped with some of the design choices, but the simulation worked well once it was completed.

    The gait generation was based on this paper:  https://www.semanticscholar.org/paper/Locomotion-Control-for-Electrically-Powered-Quadru-Ko%C4%8Do/897e209277562b835b8e0e1e07023ac85d05ae12

    Though the simulation is far from perfect this bodes well for performance of the physical robot.  I need to clean up the code for the ROS controllers, but I will add the code to the repository soon.

    The first tests were to check the actuators worked ok,  it was just moving up and down vertically.

    A slow walk, this only lifts one foot at a time whilst the other 3 are moving slowly back. It is looking good.  This is very stable, you can stop the gate at any time and dobot doesn't fall over. It's speed is limited though.

    Now a faster trot, this involves lifting two diagonal feet at the same time.   You need to be moving faster for this to be stable, but it also has a higher top speed.

  • Motor Controller Testing

    Charles Galambos07/21/2017 at 18:17 0 comments

    First up was getting the angle calibration working. This involved using six-phase control and measuring the reading from the Hall sensors, then linearly interpolating between the angles.

    Once the angle sensing was working it is then possible to run the motor. It works well, if a little noisily.

    Assembling up the 3 linear Hall effect sensors for testing the motor controller.


    Finally the motor is running, the firmware still has a long way to go though.

  • Motor Controller Mk II

    Charles Galambos07/21/2017 at 17:56 0 comments

    The second version of the motor controller is based on a much more powerful ARM chip.  

    The design owes much to the open-source motor controller designs at http://vedder.se/2015/01/vesc-open-source-esc/, and https://hackaday.io/project/11583-odrive-high-performance-motor-control

    If this wasn’t a project about learning and experimenting, ideally it would have been better to just use one of these designs.  But they used shaft encoders, and/or didn’t seem optimised for driving motors at low speeds, at least at the time.

    I did want to learn and experiment, and I wanted a new controller design which would drive bigger motors, with more precision, alongside other requirements such as CAN bus communication.

    Here is the empty PCB as it arrived.


    The first thing I did was populate the power supply, and check it was delivering the right voltages to the right places.  This is much easier to do when nothing else is connected.  As you can see the red power led is happily illuminated.

    Next I populated the micro-controller. Things powered up, and no excess current draw, a good sign!

    Next to hook it up to the programmer and see if we can get a LED to blink..

    Next I fitted the rest of the electronic in the driver section.  Soldering the large chips was tricky,  essentially I ended up using as little solder paste as I could with a hot air gun. This would inevitable leave solder bridges between some of the pins of the chip, so I would then remove the excess solder away with solder wick.

    The board with everything but a few connectors fitted.

  • More Legs

    Charles Galambos07/21/2017 at 17:11 0 comments

    Though the motor controller isn’t ready, I tested a leg by fixing the drive spline and putting vertical force on the leg.

    The motors tended to twist, so the hips needed extra reinforcement.   The reinforcements were extended to add a front bumper.  There is still a little bit more twisting than I would like, making the legs springy  at small angles, how much this will affects the legs in walking isn’t clear.

    Some of the clamp joins also gave, hopefully a combination of tightening and some hot glue to increase friction will sort this out.

    With motors on the hips dropped lower, another worry is the clearance between the motor mounts on the legs.

    One of the design changes that came from this was to round off the corners on the motor mounts as it improves the range of movement noticeably.

  • Hips

    Charles Galambos07/21/2017 at 16:52 0 comments

    Originally the design had the two motors controlling the upper and lower leg position in line with the hip motor.  This design was compact, but had the problem that it severely limited the range of motion of the upper leg.   To allow the upper legs a full range of movement back and forward it was necessary to lower the motors, allowing the upper leg a full 180 degrees of motion.  

    The hip joints are of a composite design using carbon fibre rods to reinforce the 3d printed plastic parts.   How well this works we’ll see when the robot starts walking.

    In the following picture you can see how the carbon links the two parts.  When fully assembled there is also a rod threaded vertically.

    Side view of the assembled leg, the vertical rods haven't been trimmed to size yet.

    Front view of the assembled leg

View all 15 project logs

  • 1
    3D Printing Notes

    Most of the components in the project are printed in PLA with the exception of parts directly in contact with motor which will be made from ABS.

    PLA Printer setup:

    • 0.3 mm layer height
    • 20 % infill
    • Honeycomb fill pattern
    • 0.4 mm Nozzle diameter

View all instructions

Enjoy this project?

Share

Discussions

Tyler Berezowsky wrote 3 days ago point

Are you using FreeCAD to develop all these components (I was snooping around your repo)? How do you do assemblies? I didn't see support for assemblies in FreeCAD. 

  Are you sure? yes | no

Charles Galambos wrote 3 days ago point

The first version of dogbot used FreeCAD and I really wish I could have continued to but without decent assemblies it became a nightmare to update parts and check they fitted.  The recent versions of the robot were designed with Fusion 360, which isn't perfect but very much easier to work with.

If you are interested how the gearboxes work, the basic design has changed very little from the freecad ones.  I was checking clearances by exporting the components and importing them into a single design, a bit of a frustrating process.  


  Are you sure? yes | no

Tyler Berezowsky wrote 2 days ago point

Awesome, I was just curious about your workflow. I was trained with Solidworks and tried to transition to FreeCAD, but I also had to abandon it due the lack of solid assembly tools.  Thank you for your quick reply! It's an awesome project and I'm impressed at the amount of design work you've placed into this project thus far! 

  Are you sure? yes | no

Dan DWRobotics wrote 07/21/2017 at 17:29 point

This looking really good. Love the choice of motors. Should give a decent amount of power. Have you done any weight/force testing to see how strong you make the legs? Really like seeing big projects like this. Interested to see how this develops.

  Are you sure? yes | no

Charles Galambos wrote 07/21/2017 at 18:02 point

Thanks!  Yes I've done a some testing with my old motor controller and I believe the should be strong enough.    The legs were actually designed to be a little shorter than the ones in the pictures.  If the motors are struggling, I can increase the leverage by shortening the legs  by cutting down the carbon fibre rods.   I am hoping I won't have to though.

  Are you sure? yes | no

Ulysse wrote 07/21/2017 at 17:21 point
following with great interest

  Are you sure? yes | no

ꝺeshipu wrote 07/21/2017 at 16:50 point

Well, you can build a viable walking robot for $30, depending on your definition of "viable". How come I haven't seen this project before?

  Are you sure? yes | no

Charles Galambos wrote 07/21/2017 at 16:57 point

Hi!  I've only just got around to documenting it.    For this project viable is able to function in a human scale environment.

  Are you sure? yes | no

ꝺeshipu wrote 07/21/2017 at 17:01 point

That sounds like a very reasonable goal! Looking forward to see how it works out!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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