Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create real-life robots?

Tags:

Even before I learnt programming I've been fascinated with how robots could work. Now I know how the underlying programming instructions would be written, but what I don't understand is how those intructions are followed by the robot.

For example, if I wrote this code:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

How would this program be followed by the CPU in a way that would make the robot do the physical action of looking to the left, moving his arm, and such? Is it done primarily in binary language/ASM?

Lastly, where would i go if I wanted to learn how to create a robot?

like image 654
Ali Avatar asked Feb 12 '09 03:02

Ali


People also ask

Can I create my own robot?

It's not as difficult as you might think. You can use one of the many starter kits available or create your own programmable robot with an array of standard electronic components. For the robot's electronic brain, you could use a Raspberry Pi, Arduino, or another type of microcontroller.

Is it possible to create a humanoid?

Exact human cannot be made artificially.


4 Answers

In the end, something has to break down the high level commands into very low level commands. Something has to translate "Pick up the cup" to how to move the arm (what angles the joints should be at) to the hardware commands which actually turn the motors.

There are frameworks which try to provide some amount of this translation, including (but not limited to):

  • Player/Stage
  • Microsoft Robotics Studio
  • Carmen
  • CLARAty
  • Lego Mindstorms

However, since robotics research is interested in every layer of the system, there aren't many systems which provide the entire translation stack. If you're looking into getting into robotics, there are several systems which attempt to make this easier (again, a random sample):

  • Lego Mindstorms
  • TeRK
  • VEX Robotics

Failing that, sites such as Make even provide guides to building robot projects to start from. The challenge is find a project which you are excited about, and go to town!

like image 81
jasedit Avatar answered Oct 21 '22 21:10

jasedit


You should check out Microsoft Robotics Studio (MRS). They have many videos/screencasts, and written tutorials. Additionally, Channel9 has many videos, interviews, etc, on the robitics subject. Including demonstrations, and interviews with developers of MRS.

like image 38
Sampson Avatar answered Oct 21 '22 19:10

Sampson


In most modern robots you would have an Inverse Kinematic model of the mechanism, in this case the arm, that converts the spatial coordinates into positions for the joints of the arm. These joints are usually moved by servo motors. To smoothly move the arm, you need a series of intermediate joint positions defining the path you want the arm to follow. You also have to worry about the velocities of the joints, which together control the speed of the "hand" at the end of the arm.

While the arm is moving your servo system will be getting feedback about its actual position. Simple servo systems may use a basic PID feedback loop to adjust the motors. More complex systems will include feed-forward parameters which compensate for inertia, gravity, friction, and so on. These can become very sophisticated.

The real fun starts when you have to allow for obstacles in the space around the robot. You have to sense the obstacle and figure out how to avoid it and still reach the destination.

like image 33
Jim C Avatar answered Oct 21 '22 21:10

Jim C


I just have to add something about Arduino projects to this because I dont see it mentioned above.

There is a very low bar for entry into the Arduino based robotics projects. The "sketch" programs that you write for the hardware are very easy to pick up and similar to C syntax. If you dont know your transistors from resistors these boards still allow you to do alot with plug-in hardware and additional "shields" that extend the base computer board.

Its very fun, very flexible and something to get your code interacting with the real world. Plus its "Open Hardware" very along the lines of open source software.

like image 24
Tj Kellie Avatar answered Oct 21 '22 19:10

Tj Kellie