March 4, 2019

Hello There, Mini Cheetah

Now that this is officially out I can finally put up something about what I've been doing for the past 2 years.

Photo Credit: Bayley Wang



This project has been a continuation of the Hobbyking Cheetah project, but for research rather than out of my pocket.  Here's my thesis on the actuator and robot design.  I designed and built all the all the hardware, both mechanical and electronics (with some design and fabrication help from Alex), and Jared wrote pretty much all the software and high-level control running the robot, including the Convex Model Predictive Control for locomotion.

The design principles behind the robot are very similar to Cheetah 3:  High torque electric density motors, low gear ratio, efficient transmissions to minimize friction and reflected inertia, lightweight legs with motors placed to minimize leg inertia.  A few things are different, though.  Mini Cheetah has 12 identical modular actuators with built-in motor control, gearbox, and support structure.   The electric motors are off-the-shelf and very cheap, unlike Cheetah 3's custom designed motors.  Mini Cheetah has even more range of motion than Cheetah 3 at the hip, so it's able to point it's legs completely sideways.  This means that it should be possible to make the robot land feet-first regardless of what orientation it falls in.  

I finished the hardware for the robot last May, but the publication cycle is kind of slow, so I wasn't  able to put up any info about it before.  There's going to be a paper about the robot in ICRA 2019 in Montreal, so the robot and I will both be there.

-------------

Jared and I (mostly Jared) did the backflips for our final project for Underactuated Robotics last spring.  There are some more details about how it works in the thesis, but basically we did a nonlinear trajectory optimization offline, and just played back the resulting joint torques on the motors, with a little bit of joint position control to the optimized trajectory on top.  Our simulation of the dynamics was accurate enough that it worked on the first try in the hardware.



Here are the videos from back in May.  At the time we weren't set up for backflips completely untethered and wireless.  Since then we've adjusted the flip trajectory a bit, made the landing less bouncy and more reliable, and gone fully wireless.






30 comments:

  1. From your thesis: "The particular model used nearly identical in shape and performance to the T-Motor U8, which was used in the direct-drive legged robot Minitaur[20], but available for for between $60 and $90, less than 1/3 the cost of the U8."

    Do you have a link to the actual motor used?

    ReplyDelete
    Replies
    1. I originally purchased them on Ebay formerly here (https://ebay.to/2XF3iMb), seller offered a bulk discount. Now I'm getting them directly from iFlight. They've also been on sale on Hobbyking a few times for $60, but are out of stock now.

      Delete
  2. Impressive work! I'm really happy that I found your blog after watching official "mini cheetah" video on youtube :)

    ReplyDelete
  3. Ha! I suspected it might be you behind the Mini Cheetah videos that started popping up in my feeds. Congrats, great work!

    Regarding the Front Housing part of the actuator, did you use a 4- or 5-axis on the Haas for the side vents? Or was it some kind of indexing fixture?

    ReplyDelete
    Replies
    1. I did it on the 4th axis of a Dyna 1007 which has been converted to Linux CNC controls

      Delete
  4. Hi Ben,

    Really thanks for the amazing work, this provide more flexibility for people working on it.
    Will the whole thing be open-sourced? I am out of school already and working on STEM education now, but I am still a great robotic enthusiast. It will be great if I can build one at home and helps improving it.

    BTW, is the back flip from trail and error?

    ReplyDelete
    Replies
    1. The backflip was done with offline trajectory optimization. There was a lot of trial in error in simulation to get that to work well, but on the actual robot it just worked.

      It is not open source right now - that's not really my call. I do hope to make the design available eventually though.

      Delete
  5. Just take a look at flipping part in your thesis. It's said that the code to generate this motion is open-sourced but i can not find the right link for this part in Appendix A.

    Do you plan to share it?

    ReplyDelete
    Replies
    1. Hi Thomas,
      Sorry for the mistake in the text. I'll check with the other people I worked with on that project and see if they're okay with sharing it.

      Delete
  6. Hi, Ben
    You did a really awesome job, thanks for you sharing.
    I would like to know which simulation software are you use? and some details about the accurate dynamics?
    Thanks in advance!

    ReplyDelete
    Replies
    1. Our simulator is all custom. The rigid body dynamics are computed with spacial vectors with some additions (http://royfeatherstone.org/spatial/)

      Delete
    2. Thanks your reply first!
      I mean, after you get the link accelerations, then you use what to draw it? OpenGL, ODE, MoJoCo or something? And you also have to solve the collision and friction problems, why not use a existing simulator?
      Or do you have the plan to opensource or release your custom simulator?

      Delete
    3. The graphics are drawn with OpenGL.

      We don't need particularly fancy contact dynamics - we have two different ones, one with a compliant ground, and one with hard contacts (which is faster)

      I do not know if there are plans to open source the simulator. That's not really my work.

      Delete
    4. Thanks Ben! Really appreciate for your answer.
      Now I just have two questions here:
      1. About the rigid body dynamics, do you write your own featherstone-algorithm, or use some libraries like RBDL?
      2. I wonder if there has some links or references for contact dynamics(your two different ones). You know, the contact dynamics is always quite difficult to simulate, I really want to know how to make it works like yours!
      Thanks in advance!

      Delete
  7. Hello Ben,

    just simply put - truly amazing work. I would like to try and build one for a test bed, however I could not find any CAD data for the mechanical components, such as the housing, gearbox or rotor modification. Would it be possible for you to upload these? Thanks!

    ReplyDelete
    Replies
    1. Sorry, not at this time. I hope to eventually though.

      Delete
    2. Is it because you don't have them, or cannot share them through some licensing issues?

      Delete
    3. Are there any other elements that are not provided or just the CAD files for the actuator housing? From a quick scan of your thesis and github it looks like most everything else is provided?

      Delete
  8. Your work is astonishing and I hope you will continue to develop cutting edge robotics. Your blog has been a great inspiration for other students of robotics like me.

    ReplyDelete
  9. Was the gearbox lubricated? If so, willing to share with what?

    ReplyDelete
    Replies
    1. I'm using a thick molybdenum disulphide grease:
      https://www.amazon.com/Yamalube-ACC-MOLDM-GS-10-Molybdenum-Disulfide-Grease/dp/B005XA2EQK

      Delete
  10. Great work. the bot is very dynamic and compact, it looks way better than cheetah 3.I am an UG student in mechanical from india and i am very much into this legged robots, can you explain what are the topics i should develop knowledge on to make a legged bot, and also could you suggest some source for learning dynamics of walking of legged bots

    ReplyDelete
  11. I've got a similar motor to your iFlights, a BE8108, and I am having a terrible time trying to liberate the stator from the aluminum back housing. I've tried heat, cold, PB blast off, acetone, combinations thereof, all with no luck. I'm about to just use a cutoff wheel, but figured I would see if you could reveal what technique you used with your motors to extract the stator?

    ReplyDelete
    Replies
    1. First cut through the aluminum cylindrical part holding the stator in 3 or 4 places. Be careful not to cut into the stator. I originally did this by passing a hacksaw blade through the hole in the center, and later by plunging through on a CNC Mill.

      Then use a flat screwdriver and hammer to bend the 4 sections of the aluminum inwards. Then the stator should fall right off.

      To hold the motor while doing these operations, I passed a big bolt through the bearings in the center, tightened a nut on it, and held that in a vice.

      Delete
    2. Yeah, the hacksaw seems to have done the trick, although my hand hurts enough now that yeah, a mill will be the way to go for more than 1 or 2.

      Thanks!

      Delete
  12. That's pretty incredible - particularly how you are using more stock components and less expensive custom ones. I've been following your work since the Rubik's contraption, and it is so impressive. Just wanted to say how awesome this is - can't wait to see a pack of 10 of them running around!!!

    ReplyDelete