Let's make a biped together

Hey there, I am about to make a self-balancing biped. I have experience in software development, 3d design and animation. Now experimenting with Arduino and accelerometers. I am open for joint development. Let’s share experience and do this together.

Self balancer

I started a self-balancing robot about 10 months ago and the entire project is stalled. Some pictures and comments can be found on my LMR home page. A number of other members have completed similar units. I would be interested a joint venture.

Hi there, I have just

Hi there, I have just noticed there are lots of comments here, I thought people would just ignore this post but I have underestimated the LMR community, thank you… :slight_smile:

 

So the plan is following (don’t hesitate to suggest better options):

1. We setup an international group of people with a focus on creating a biped (preferably self-balanced one).

2. By default all results of the venture are becoming proprietary while each contributor becomes equally a co-author of the result solution.

3. Decision on what to do with results of the venture should be agreed by all the members.

4. Group progress results and news to be updated on a LMR page in form of general description and some videos in order to promote the group and invite new members.

5. Decision on new member entering the group should be accepted by all existing group members.

4. Every member can leave the venture at any time, or can be kicked from the group by a decision of majority of the group, nevertheless he stays the author of the venture, can use results of the venture with his own projects but can not open results unless the group have decided to do so.

5. Every member agrees to:
- Participate in common weekly meetings over Skype or any other video chat (most likely Saturday or Sunday).
- Share code to common code repository and write his research results into a common knowledge-base
- Buy necessary robot parts for his experiments by himself

Organizational setup:
1. Git repository with codebase and Redmine setup with tasks and wiki knowledge-base (I can set it up)
2. LMR page

Potential outcomes of the venture (depending of results and final decision): 
- an open source library for self-balanced bipeds
- a proprietary tech and potentially a business entity
- a scientific research paper

In short: we gather together - invest our time and some money (in form of buying parts for ourselves, if needed), and depending on the outcome, we should get some form of outcome/compensation to our efforts.

hi ggalant, I could not find

hi ggallant, I could not find your LMR home page (LMR interface is bad overall… :-() can you please provide a link? I am curious on what point your project have stalled…

Ah, I have found it… so you

Ah, I have found it… so you have stalled on the 3D model? I could do a needed model for this self balancer in about 8 hours (considering the complexity).

Inverted pendulum

I don’t believe the correct model is the inverted pendulum.

In all these self balancers, there is a wheel at the bottom to drive it back upright. There are no wheels here.  The balancing force must be on top. Humans do this with their arms and shifting hips to balance. But balancing alone will not drive this forward.

The key to walking  in a biped is the foot, it is relatively immaterial  in a quadruped and does not even exist in the segway type self balancers. But in bipeds and in particular biped robots the foot is all important.

Asimo, uses a bent knee geometry similar to what quadrupeds use, this extends the region of static balance. It is much simpler to work out than the actual human walk. Asimo also  has big feet.

In all slow moving robots it is the size of the foot that determines length of stride.

If you want a big foot slow moving robot there are already plenty of examples and no new work must be done.

If you want something more human like then you have two tasks at hand.

1) you need a very good ankle. This is the base of support and controls tilt and direction. That is very doable.

2) Your robot needs enough power to move quickly enough that momentum can carry it’s weight through the stride quickly enough.  That is much more difficult. And much more expensive.

If you design the architecture, the geometry of the robot, you can calcuate the torque and power requirements. Then you can figure out the actuators. I propose about 3 fps as being the minimum speed necessary.

 

 

Few words about my current

Few words about my current “progress”… :-) I have got motor controller and experimented today a bit. The biggest challenge I got at this moment is that the motors were overheating too quickly (more than 100 degrees celsius, subjectively, as I have burned my digital-thermomether trying to measure the heat %-D ). When I started to investigate the problem I have found this: http://forums.adafruit.com/viewtopic.php?f=31&p=290850 so welcome to Adafruit world - lot’s of hype and then: “You’re right that the Motor Shield doesn’t have the capacity to limit current. It’s a simple, light-duty controller.”… :-/ Guys there suggested another controller, will order and check if it works. Hope I have not yet burned the motors with my experiments… :-/

Good thing is that I still have managed to program motor with my CMPS11 magnetic compass… And I was a bit impressed with the speed of the stepper and how it was able to react on angle changes. The torque is bad however, as well as steps are rather high (though it is solvable with custom joints I am thinking about), but still I have to try a geared DC motor as well as some good servo motor for this, maybe find something appropriate, the idea is to get something similar to this, but with DC: http://harmonicdrive.net/products/actuators/rsf-supermini/ (so far seem good: https://www.youtube.com/watch?v=AdpyLo-tjsE), though I am not sure it is possible… :-/

Next step is to try new motor controller with current limiter and increase I2C clock to 400Hz so that I could get at least 200rpm on them (with the Adafruit I get 55rpm :-/). If it works, I might consider next steps to work on joints which is by far second important thing after motor and IMU selection.

I disagree with your thoughts on balance

I disagree with your thoughts on balance. Balancing has nothing to do with wheels. Humans balance themselves in the same way but in X and Y dimensions and the key thing here are joints on ankles (as you said). Humans help themselves with the arms and knees (and steps, btw, which are by it’s nature is just a controlled fall, exactly as Segway is…). I believe this is another big topic of discussion with technical people, as to my best knowledge of the community, this is fundamental misconception to over-complicate walking, while in reality it is just typical inverted pendulum task (though not a simple one). If interested, please write your Skype or other messenger Id to my email which consists of my nickname @ gmail dot com, and I can share with you what I have learned from motion analysis when I had to work with walking/running animations and different gaits…

But balancing alone will not drive this forward.

…and this is absolutely correct, here is second fundamental thing - to combine mechanical walking with balancing, so that it can later evern self-calibrate itself (as human beings and 4 legged creatures do when they learn to walk).

Though I totally agree with you that feet are most important. Now, on your 2 tasks:

1. Not only for ankle, but for all the joints I am considering bearings and custom precise gears, btw, just thought, that most likely some linear actuators will have to work better there.

2. Power, speed, torque… yes, I consider this to be problem #1 and that is why I have asked about good motors. Can you suggest any? I want to keep total size about 80 cm of the whole structure and about 40 cm for legs… I have made some calculations with, for example NEMA11 motors (4x2,5x2,5cm), structuring a hand, and found out I would need minimum about 1kg/cm torque on shoulder joints, for the leg it will be higher I guess… And of course it should be fast as well, as fast as possible with highest torque. I am not sure if I should use a stepper a geared DC or a servo. For some reason I don’t like servos, they remind me of some toys and not serious things… but I might be wrong.

Can you please explain your 3fps suggestion?

Btw, in the similar topic,

Btw, in the similar topic, osh have suggested Dr. Guero as example ( https://www.youtube.com/watch?v=_2cfc75M8Os and this: https://www.youtube.com/watch?v=6YPsLJ0jwDI ), and this is basically almost what I am talking about - with some details, see comments in this topic: https://www.robotshop.com/letsmakerobots/best-platform-self-balancing-and-running-biped-robot#comment-13327

Speed

I can not help with actuator suggestions as I have no experience beyond hobby servos.

My project is a cat like quadruped and the architecture is different. With that said, when I saw Asimo I understood at once why they used the bent legs, and I looked a bit into the rate of fall. The leg must be in position in time to stop the fall, this would be for any step that is beyond the limits of static stability. You can look at that as a tall rectangle, the base being the foot, and how far it moves before tip over. Note that swinging the arms can move the CG around some to get a larger region where it is stable.

The 3 feet per second (~ 2 mph) is a ballpark based on step height and a step length greater than a robot foot. Note that when humans move very slowly they take small steps that keep the CG contained. Walking is controlled falling. Depending on your architecture your numbers will be different. But, if you look at the existing working walking bipeds (those that actually walk rather than step), that number seems about right.

So, the calculations to me revolve around how much power it takes to move the mass at that speed. Power ratings are hard to come by but can be calculated. I know how to do that for permanent magnet motors, which most hobby motors are. Motors (particularly servos) are specified in stall torque and no load speed. At no load speed, there is no work done because there is no load. At stall torque, there is also no work being done because there is no movement. Maximum power is at half torque, which is also half speed, that is how you get a horsepower rating.

http://members.toast.net/joerger/pic2/motorcurve.gif

For my critter, I have given up on speed and decided to run at approximately the maximum power point or below.  That is because I wanted the robot to carry it’s power and also carry a Kinect so that it has some idea of the space that it occupies (~ 3 1/2 pounds total). 

Quadrupeds still have issues with falling over when they have a leg up as they are often right on the CG, but I can adjust the CG to keep it upright. There is no way I can do a 2 beat gait though, the power to weight just isn’t there.

Good luck with your project.

 

 

 

start small

Starting small will help to keep the costs low, minimize risk of crashing parts and it’s overall simple to build the mechanics.

Then first run it tethered, to provide exact volts and current without worrying about battery size and weight.
Leg first then arms.

It would be even better to start with a leg with 2-3 degree of freedom, and then add other degree of freedom until you get a good walk.

While is true that humans have a sort of IMU in the ears, keep in mind that we have also a hidden sense which is self perception. A way to simulate it is to add a IMU to each joint, this way you can get enough feedback to build a model of a biped and know exactly where limbs are, to make the next move.

btw, I am now combining the

btw, I am now combining the frame for legs from Actobotics… Hope with it’s bearings and gears the whole construction should be sturdier than typical simple servo joints… anyone worked with it? should I order?

Thanks Silux, actually this

Thanks Silux, actually this is the approach I have now. And I have specifically ordered 2 MPU5060 predicting some additional sensors might be required… 

MPU6050 can be found for

MPU6050 can be found for €1,67 on AliExpress, on a budget of hundreds i would consider them as expendable.
ADXL335 and ADXL345 are about the same price, but offer an analog interface, which may be more convenient to an arduino. Each Atmega328 can monitor fully 2 ADXL, even if not all axis are necessary, as you only need to know X and Y to get data from a 2° freedom joint. Atmega2560 has 16 analog pin so it can keep track even more sensors.

Thanks for suggestions, I

Thanks for suggestions, I have to read more about the analog accelerometers. So do you say it is better than: BNO055? (together with it I have also got LSM9DS0 - just to try… )

Leg Design

I stumbled across this improved humanoid leg:

http://spectrum.ieee.org/automaton/robotics/humanoids/designing-a-more-humanlike-lower-leg-for-biped-robots

As you know I have been an advocate of getting the geometry right, I don’t think bipedalism is a software or strictly power problem.

Of particular note on this robot is that they minimized the distance between the legs to make it more human.This minimizes the force that would tip the robot sideways as the foot is closer to the center of gravity.

Actobotics

I’ve never used it but have looked at it both online and in person. Looks like good stuff and easy to put together. They have a variety of bearings and mounts.

I had to make my bearings out of UHMW, and of course, wood. This is easier.

Hi cyberjeff, could you

Hi cyberjeff, could you please explain this in more details: “As you know I have been an advocate of getting the geometry right, I don’t think bipedalism is a software or strictly power problem.” ? You mean mechanical structure is the thing that holds us back?

thanks, I’ll try then.

thanks, I’ll try then.

We are made the way we are for a reason

I’ve talked about this before…

Horses, cats, chimps, birds and humans all are made from the same skeletal model. The joints and bones are the same, but the proportions are very different. The proportions are suited to the way they move.

If you want a robot to walk like a human, you need the same geometry and proportions. There is a reason for the way we are designed. I found  that out when I was studying cats. Nature has designed the proportions to work. What looks like feet in a cat or dog are actually toes and fingers. and what looks like a lower leg is actually the foot.

A humanoid robot with it’s feet too far apart  will never walk like a human. If you want an easy to build biped, the human model is difficult to achieve. The way hobby servos are typically connected constrains the possible geometry.

If you want a biped sort of like a human, Asimo is the model to use.

The other great problem with humanoid robots is providing the  motor power needed.

Providing the feedback for balancing is not much of a problem. BTW, I think you should use an accelerometer that has a compass in it like a MPU9150 or a similar 9 axis combo. Gyros drift quickly and the compass corrects that. Otherwise you will never know when the robot is level as the drift will give  false readings.