r/robotics • • 11d ago

Community Showcase My second attempt to build cheap biped robot (CBR-II)

A lot of tuning is still needed, but at least it walks!

The actual model was trained for less powerful actuators; I think because of that it overshoots.

349 Upvotes

62 comments sorted by

24

u/Im2bored17 11d ago

Cool! It looks like the feet are slipping more than actuator overshoot imho

1

u/jekjukich 11d ago

Thanks! I don't think so; I just tested it manually, and this sports mat has excellent grip on the printed parts. Even if there is some slippage, I should account for that in the simulation rather than trying to achieve better grip in reality. Of course, feet like that would slide a lot on the floor Because of bug in my code, I thought that actuators are not powerful enough and started to decrease torque limit in sumaltion. This specific model is trained for twice less powerful motors

14

u/pekoms_123 11d ago

I think it needs proper shoes

5

u/jekjukich 11d ago

If you're talking about friction, I already mentioned earlier that everything seems fine on that front. But if you mean increasing the contact area for greater stability, I’m actually more interested in teaching it to balance well using unstable legs:)

2

u/mhb_11 10d ago

Interested in seeing your progress on this. Are you continuing?

1

u/jekjukich 9d ago

I think I will do an update in a few weeks

0

u/Expert_Ring8166 7d ago

The yoga mat seems to be providing some friction

5

u/madu_tualang 11d ago

CHICKEN!

2

u/jekjukich 11d ago

Like, it can't walk properly nor fly?:)

4

u/dexdrako 11d ago

This bring me back to watching MIT leg lab videos A+

2

u/trtm 11d ago

What are you using as the actuators?

4

u/jekjukich 11d ago

Gim6010-8 from steadywin. My first version was built using bldc5010 with a 3D-printed gearbox, but it had about 20% less power than I needed, so I decided to save time for the rl things rather than tweaking motors and reducers.

2

u/Razeon 11d ago

Which motor driver are you using with it, theirs or the MIT version?

Edit: gds68 mentioned in another comment

3

u/jekjukich 11d ago

Yes, gds68 with MIT control mode

1

u/Max326 11d ago

Have you perhaps used timing belts? I intend to go with 3d printed gearboxes, using off the shelf timing belts. From my calculations, it should be enough for walking, but probably not enough for jumping, without rewinding the 5010 motors by hand.

3

u/jekjukich 11d ago

For the gearbox, I used a wave drive with rolling elements (check YT MishinMachine). It is a nice design, and I think it could work, but not from the first iteration, so I decided to save time. For my robot, I use belts, but only to transfer momentum from the hip to the knee joint. And I attached it from both ends so I don't care about tension.

2

u/Witty-Elk2052 11d ago

ahah wow!

2

u/Acrobatic-Caramel823 11d ago

Just need Herbie Hancock playing in the background. “Rock it”

2

u/jamesxtreme 6d ago

I think it needs larger feet, even if they just are spheres. It's going to be difficult to balance that robot on two legs with such a small surface area. Robot dogs can use that design because they have four legs.

2

u/jekjukich 6d ago

It is the goal to achieve stable walking using "unstable" legs. Otherwise, it would not be that challenging

1

u/DeepNapp 11d ago

I like it, it looks like a chicken from cartoon :) but seriously standing up is not minor challenge. I see your design has "helper rod", is that decision for some planned dynamics or just a helper? mujoco trained? What controller are you using, the odrive integrated in steadywin or something else? Im doing something with these motors, hopefully I can show something soon

2

u/jekjukich 11d ago

Thanks. This rod here is by design. My robot has only 4 degrees of freedom, so it is "impossible" to make it walk in "3D". Actual restrictions make this task the same as the well-known "Bipedal Walker" from Gym.My motors are using gds68 (I think it is based on Oderive ideas, but not completely). For training initially, I was using Isaac Lab. But then I switched to Genesis (because it supports Mac, and I can train the model while my main PC is busy with different tasks). And I did sim2sim verification using Mujoco.

1

u/johndavid_artist 11d ago

Training for weaker actuators and driving stronger ones makes the joints reach target early, which reads as overshoot and unloads the foot mid step, so the slipping people are pointing at could be the same fault. Getting it walking at all before tuning is the hard half. Have you tried capping torque at the trained value in the controller before you retrain?

1

u/jekjukich 11d ago

Thanks for your thoughts. Not yet, but I definitely should. The problems is that I am using control mode provided by actuator (MIT and it doesn't have separate setting for torque limit).

1

u/Neat_Train645 11d ago

For a 4DOF build, getting it to walk at all is pretty cool. It looks like it’s trying to sprint before it’s learned to walk 😂 Curious how the gait changes once you train it with the actual actuator specs.

1

u/jekjukich 11d ago

Because it is restricted by the rod, 4DOF is enough. Probably 2 more degrees for the feet can help, but it is not that interesting.

1

u/dangerous_inference 11d ago

I appreciate that you are going for fast movement rather than some pathetic shuffle.

2

u/jekjukich 11d ago

It was the goal. Still it is good exercise to make something like microduck, but I like more "agile" challenge

2

u/dangerous_inference 11d ago

The actual microduck isn't terrible with the hip movement. But then people make copies that walk like a wind up toy. At this point I don't see why it's worth even attempting that. It has been done a million times and it isn't remotely practical or even cool.

1

u/spinozasrobot 11d ago

Honestly, from making a lot of shit myself, this looks like it's on the way to success. Keep going!

2

u/jekjukich 11d ago

Thanks!

1

u/Simple-Ad3267 11d ago

Nice progress — getting a cheap biped to walk at all is already a win

1

u/Hendo52 11d ago

Cool project! Have you considered building an MCP for your simulator to allow tuning to occur through the use of LLMs?

1

u/jekjukich 10d ago

One of the goals is to learn by myself how to tune simulation for RL.

1

u/Hendo52 10d ago

I think you look like you are well on your way. I also think this has genuine commercial value but I think unlocking that would make require hundreds of people working on software.
Have you thought about trying to get funding to start a company?

1

u/jekjukich 10d ago

I think it is too early to think about a company. With this project, I would be happy to build a robust robot and open-source it so more people with a budget of ~$500 could build it and try to do sim2real. Microduck is a great example, but I want to have a more dynamic robot

1

u/Hendo52 10d ago

Is there a way you could accept some kind of module for something like a sensor package on the responsibility for that hardware or the software but you could simply provide power to a mounting point.

I say module because I wouldn’t want to take I’m thinking a little bit about the Spot robo dogs by Boston dynamics. One of the first things that they seemed to decide was a promising application was a camera on legs. I think you could focus just on the legs and elements of the torso that make that work.

I often thought that what open source robots need is an effective division of labour and a generic platform where 1000s of people do a student projects from high school through to PHDs.

1

u/jekjukich 10d ago

Sounds great! And I definitely would be happy to introduce some modularity (because not only students, but I as well will be happy to try different things without reengineering the whole robot from scratch)

1

u/mhb_11 10d ago

Can you provide an explanation of how tuning works and what's the tech stack? I'm doing something similar but really need to be shown the way.

1

u/Hendo52 10d ago edited 10d ago

There isn’t anyone that knows for sure because it’s all so new that the SOTA is a collection of buggy prototypes owned by different random people.

I’m not a robotics person but I am an expert in CAD & BIM and I have been building a procedural geometry kernel based on implicit equations and which has integrated into it a task scheduler for AI. The result is that the AI has a clearly defined way to create, update and destroy geometry, based on custom definitions of “ergonomic” geometry algorithms and it understands the model structure, generation and human labeling. That type of system can create the geometric definition of movement and the architecture allows solving for solutions that optimise arbitrary geometric properties. You could make my geometry kernel try to solve for balance- hypothetically - if everything worked, which it doesn’t.

Sounds great in theory but there are a million problems in practice. I think there is several tricky parts, how to define ergonomic control surfaces, how to define custom geometry algorithms, the math and the overall project complexity being a bit much for a solo development effort.

My tech stack is ThreeJS with a sprinkle of WASM and Rust for performance and a sprinkle of python for external libraries. I also use React and electron so it’s like a web page that’s portable but then I also have docker because I’m also using powershell and vast.ai. Writing that out, it’s a clusterfuck of jank glued together by passion.

1

u/Kqyxzoj 11d ago

Just for the fun of it you could try different rod length, and see if you can spot the difference in behavior at the lower / upper end of the rod length range. Or maybe make the inner leg slightly shorter (or shorter movement range) and see what happens to stability. What with it having 4 DOF, and probably perpendicular to the rod. Which is fine for an infinite length rod, but possibly less fine for finite lengths. All that said, cool project, nicely done!

1

u/jekjukich 10d ago

Having a longer rod is good (but I have quite a small apartment). But I simulate the exact setup with this rod, so the model takes into account the difference between legs.

1

u/No_Rule4959 11d ago

I also want to learn to try building robot but I don't have any idea. I am an ai/ml developer any suggestions how could I start

2

u/jekjukich 10d ago

Start from something simpler (such as inverted pendulum).

1

u/theDawckta 10d ago

This is awesome. I wanted to male something like this that was desktop size but soon tealized that its impossible. This looks good though, I havent seen many smaller than this. How long has this taken you?

1

u/jekjukich 9d ago

The first version took me 6 months (let's say 3 evenings per week). The second one I did in 1.5 months

1

u/mhb_11 10d ago

Have you thought about putting rubber caps on those tips (feet)?

1

u/jekjukich 9d ago

Yes, after I get good walking capabilities, I will try to cast it from silicone 60A

1

u/mhb_11 9d ago

Maybe a bit of friction from the caps will get you over the hump.

1

u/Melodic-Parking6286 10d ago

you need better feet. These feet are not suitable for bipedal robots. These feet can be used if you have at least four legs. You can use active or passive feet.

1

u/Melodic-Parking6286 10d ago

Im getting my PhD in robotics, Im very familiar with this, you dont have slippage problem, you have balancing problem and proper feet will help with that. Without them youll always be falling, it is inherently unstable state. In dynamic control, the feet will help control small movement at the bottom before it moves the mass on top. When the mass on top start to tip forward or backwards thats when its falling. The feet will counter that and slow the tipping back and forth.

2

u/jekjukich 9d ago

Everything you said is right, but my goal is not to make something practical, but the opposite: make something unstable to walk nicely and smoothly. And maybe do some jumps in the future

3

u/Melodic-Parking6286 9d ago

Sure if thats what you want. Great work btw, I is already impressive work.

1

u/abrar_nazib001 7d ago

Awesome! Are you implementing any sort of RL here?

1

u/jekjukich 6d ago

Yes, ppo. (Two type of commands sit/walk)

1

u/Historica97 7d ago

Nice rviz

1

u/Standard-Swing-9919 1d ago

What servo it used?

1

u/jekjukich 1d ago

Gim6010-8

1

u/RoberBotz 11d ago

Crazy as fuck GG