Close

Kinematic Videos - Need Sensor Feedback and Big Feet

A project log for Inexpensive 3D Printed Full Size Humanoid Robot

I'm designing a super cheap humanoid robot platform. It is going to be the same size as an adult person.

dan-dwroboticsDan DWRobotics 07/26/2017 at 23:206 Comments

So I did some further work towards controlling the legs. I added a set of sliders to the GUI that control the legs individually or together. The one for the left leg 'contracts' the leg so it raises up in a straight line. This is achieved by programming the slider to add values to multiple joints at the same time. Specifically, for every 1 degree that the hips and ankles move, the knee will move by 2 degrees. This is using very basic trigonometry and is the basis of inverse kinematics. I

  Here is a poor quality vid of messy room and shakey legs. The slider controls the legs up and down movement. I should be able to use these movements at a later date to begin the basics of walking.

These next vids are demonstrating the use of one slider to teleoperate the legs. That one slider changes values on six joints at the same time. Previous movements have been generated by merging between two previously save positions, but those I need to teach it. The slider controlling all six joints is creating a new range off movements according to all possible configurations of an equalateral triangle made by the legs:

 This video also demonstrates the PID program I have been working on to control the legs. I think the jerky motion is caused by the maths behind the PID I wrote. As I move the slider up, the difference is only small and so the leg power output is not high, but after a period of time, the error multiiplying over time causes the power to increase which makes the legs move upwards but they jerk upwards because they are catching up to the desired position. This would mean that I should slightly increase the effect of the Integral factor, so that the power increases slightly quicker. The danger however is that by increasing the speed that the integral affects the power output, the legs will become even jerkier . The legs will eventually have large LiPo batteries in the shins, this will prevent some of the wobble and jerk for two reasons. The batteries have enough current to drive the legs without cutting out ( the current power supply cuts out past 4 amps). Also having slightly heavier legs will lend overall stability to the structure. At the moment they are all motors and plastic, but not much weight which causes them to jerk and wobble. Having the extra weight will dampen the jerky motions a little.

   The main change that is require however, is to completely redesign the feet. This will take a long time indeed. The feet need to be bigger ( not massive). They also need to have four rubber points to absorb shock but more importantly will house the force sensitive resistors to give feedback on weigh dispersion. I can then write a basic bit of code that modifies the foot position to always have the maximum weight dispersion. This will be the main ingredient that is going to stabilise these legs.

Discussions

Dan DWRobotics wrote 07/29/2017 at 20:42 point

Hey thanks for the link. I will have a look at that. I haven't thought about learning in this way before. Definitely worth a look. Regarding the walk, in reality I will most certainly program the algorithm way before any kind of machine learning. I've literally just started getting to grips with Processing, so it's unlikely I would even have the skills to make a self learning program anyway. Plus you are correct in that, it's much better to know teh exact mechanism of what is happening and why to aid future refinements rather than leaving it to chance.

  Are you sure? yes | no

Dan DWRobotics wrote 07/26/2017 at 23:53 point

Oops!! Thanks for spotting that!!  Still in the early stages so the videos aren't that impressive at the moment. Once I have pressure and accelleromoter feedback, the functions should improve dramatically and the videos will get a bit more interesting.

  Are you sure? yes | no

deʃhipu wrote 07/27/2017 at 12:01 point

Are you going for the Asimo's ZMP walking algorithm, or do you have something else in mind?

  Are you sure? yes | no

Dan DWRobotics wrote 07/28/2017 at 20:34 point

Hi Rad, I really have no idea at the moment of how I could get this to walk. But it will most likely begin with shifting the centre of gravity onto one foot before the other raises. It is a big leap of faith on my part considering my limited programming skills, but I was really hoping to be able to program some kind of 'trial and error' sequence that would start with a very simple 'marching' algorhythm and then use distance or 'fall' data to to tell the computer if each variation of the set of moves was a success or failure. The whole idea of making the platform is for me to be able to experiment with ways of gettiing a program to learn its own best way of doing things. Well, as i say I am a long way from being able to program machine learning but I have a very good idea of how it should be done. I think if I could a 'baby bouncer' type contruction around teh legs which catches them before they fall and rights them, I could program the legs to make evolutionary adjustments to it's algorythm and it would eventually come to a point of having a set of movements that recreates walking. Well I can dream, but this is my ultimate goal.

  Are you sure? yes | no

deʃhipu wrote 07/28/2017 at 20:40 point

Learning is great, but you can often simplify things considerably if you choose the right sensors and mechanics for your algorithm. That's not possible if you don't know the algorithm up front, though.

Personally, I learned a lot about the existing algorithms and the problems with them from an online  MIT course on "Underactuated Robotics", highly recommended! https://www.edx.org/course/underactuated-robotics-mitx-6-832x-0

  Are you sure? yes | no

deʃhipu wrote 07/26/2017 at 23:38 point

The second video is private.

  Are you sure? yes | no