Society of Robots - Robot Forum

Software => Software => Topic started by: shinn23 on January 17, 2011, 05:04:21 AM

Title: Biped robot control algorithm.. NEED HELP
Post by: shinn23 on January 17, 2011, 05:04:21 AM
Hi,

I and my friends have recently involved in pneumatic biped robot project. The biped composed of 8 pairs air muscles (8 air muscles for each left and right legs). Each joints mounted with a hall effect sensors detecting the angle. We are going to use PIC18f4520 as the main controller. I'm going to work with the control code (using C++ ) of it. But, I'm beginner of using C++ programming.
Now, I have problem with the control algorithm of biped robot. By the way, will it possible to control the balance during dynamic posture just by using the hall effect sensors and the PIC (hardware part)?
 
Anyone can help me? Thx a lot.
Title: Re: Biped robot control algorithm.. NEED HELP
Post by: mstacho on January 17, 2011, 09:17:49 AM
You really have three or four challenges instead of one big one.  First, keep in mind that balance of a biped robot is *hard* (people used to get PhDs in it...)

If I understand the way you're sensing "the angle", you mean only the joint angle.  Joint angle will be used to move the joints in order to control balance, yes, but you really need a gyroscope at the robot's center of mass (or at a known location away from the center of mass).  This way you'll be able to tell the angle of the *robot* with respect to the world (your tabletop, say).  You then need to figure out the transformation between your control variables (joint angles and joint torques) and the robot's balance.  There are a lot of great books on this, but I'm not sure of the level of your math skills, so it might be either a huge challenge or no big deal.  Are you a university student?

The second challenge you'll have is the pneumatic muscle.  They are notoriously hard to control exactly, and might require a bit more than a PIC to handle (but I'm not sure.  I've only ever done it on a test platform with two muscles that didn't do much, and we used a real-time pentium 4.  But that doesn't mean that such a system is a requirement).

The third challenge is real-time control.  Balance is a very delicate thing.  I could be wrong here, but you'll probably need a real-time controller.  A real-time controller is one where if you say "delay for 1 second", it delays for 1 second +/- a very small amount.  What gyros usually give out is the rate of change of the angle, not the angle itself, so if you want the angle to any reasonable accuracy you have to integrate with a known time step.  There are real-time OS's for PICs, but the programming skill required to do this in real time might be a bit much for you if you claim you're a beginner in C++. 

I would suggest a simpler project.  Maybe just a linear, two-actuator style push/pull system to get you familiar with the concepts before you try something like this.  Of course, I'm also one to recommend a challenge, so if you're up for putting in a LOT of work, and learning *a lot*, then a biped robot is a great thing to try out :-P

MIKE