Thursday, March 10, 2005

Conflicts of Resources

One of the things that you will discover when you try to build your own autonomous robot is the competing and conflicting demands for resources. These generally include the following:
  • Sensors
  • Computation
  • Power
  • Communication
  • Motor Speed / Torque
  • Size
  • Time
You want your robot to do smart things so you need computation. But running an 800MHz processor takes a lot of power. Presumably you won't be plugging your robot into the wall, so you'll need to carry on-board batteries. If you need lots of power, you'll need big batteries which take up space and will increase the weight of your robot and demand more power from your motors which in turn demand more power from your batteries.

Communication is a requirement for some robots to transmit data to their masters or to their robot brethren. In some cases, communication is also a way of circumventing the need for bulky on-board computation and just running most of the code on a server. But communication also requires power. And communication also adds delay to the performance of your robot.

You can begin to see the interconnecting constraints that all of these resources impose on each other. This is where engineering comes in and you need to roll up your sleeves and just try some designs, gain some experience, and learn what you can. Talking to others who have gone down this gauntlet can be helpful, but they may have taken a different path and they may have missed some shortcuts on the way. Plus technology improves over time and becomes cheaper. Things that were impossible 5 years ago may now be practical.

Wednesday, March 09, 2005

Future of Construction Robots

One of the big applications I see for the future of robotics is in construction. Particularly, I think the field is ripe for earth-moving robots. We currently have all the raw materials in the form of large manually-operated construction vehicles from likes of John Deere and Caterpillar. All that is needed are these vehicles to be given electronic controls and put a computer in-charge of their operation.

What makes the task of earth-moving easier from an autonomous robot perspective is that there isn't a lot of activities that require the articulate manipulation of human hands. Most of the activities can be done using large equipment and thus can be done autonomously.

However, there remains an economic return issue that needs to be resolved. Why should a construction company buy one of these autonomous tractors that are complicated to control, only good for a specialized purpose, a potential safety hazard, and a liability instead of just hiring a worker on an hourly wage?

This is something that needs to be addressed, but I think the answer to this question is scale. An autonomous tractor would be useful and economic for very large projects. Suppose you are digging a strip-mine. It would save a lot of money if you put robots in charge of hauling dirt and digging into the earth instead of having to pay humans to do the work *and* have to shut down during the night.

Farming could be another application where an automaton could be of use. There are large expansive farms that require tilling, fertilizing, and harvesting. These farms are often thousands of acres in size. The current method of doing things is only possible with lots of cheap immigrant labor. There could be a niche for a robot if the cost of labor goes up dramatically, or the selling price of crops goes down dramatically. Or maybe yet, a robot could even undercut cheap labor.

Thursday, March 03, 2005

Walking Gaits

Walking gaits are the study of legged motion and how legs can be used to produce different kinds of motion. We're interested in learning how to control these legs, and also we want to extract general principles of legged motion, so we can easily port these to novel robot designs.

There are the typical bipeds which is what humans are, two-legged creatures. And there are the quadruped and hexapod creatures that have 4 and 6 legs respectively.

We often look to biological organisms and what their solutions are for legged motion. You can look at Kimura for examples of taking biological concepts and porting them to robots. I'm studying quadrupeds right now, so most of his papers are on quadrupeds, but I beliieve he does more general research.

Basically, they use neural oscillators to generate the movements of the joints. All of the oscillators for each joint are coupled, or "mutually entrained" as he says. I believe this also means that they're conditioned to respond to each other effectively just like you would train any neural network. This also makes the robot control adaptive since the oscillators are sensitive to the joint angles.

Of course, the problem with this is that you need to be doing numerical operations in real-time and also communicate the entrainment between all the joints in real-time. This is easy to do if you build a custom robot for this application, but on a generic robot platform, communication and computation becomes an issue.