How is robotics done in the "real world"?

Hey everyone,

I was just curious how robotics is accomplished in the real world? How does NASA build their robots, how does Honda build their ASIMO robot?

I mean to say, they don't use Arduino obviously, so outside the realm of hobbyist robotics what are the basic tools to build a robot? Is a computer used as the brain? If we can use a computer to control everything why do we need to use Arduino?

I apologize if this didn't come across clearly, it just suddenly popped up in my mind and I figured I could ask.

Exactly what I would like to know:

  1. What do professionals in the field of robotics use in place of Arduino?
    *Why do hobbyist use Arduino in place of this.
  2. What programming language is most commonly used for robotics?
  3. Is software or hardware holding back the field of robotics?

I appreciate all answers, and I will be looking it up as well to combine my knowledge with whatever responses I may get here.

Thanks!

Seth

You can use a computer as the brains behind your robot, it's just complicated by the need to interface with the outside world - the sensors that tell you where a robot joint is, controlling the motor that moves the joint, reading the sensor that tells you how tight the pincer is at the end of several joints, or how far from something, or hard the motor is working against something (perhaps rotational tightening or loosening).
The 5V input/output or 3.3V input/output of the Arduino microcontroller at decent currents makes it easy to do small to medium sized robots with direct interfacing to sensors and position encoders and motor controllers.
Doing the same thing with a microprocessor and it's high speed outputs designed for moving lots of data fast to hard drive/DVD drive and video card and system memory and very little else means an interface is needed to anything else - an interface chip to the keyboard, or USB, or firewire or whatever interface there might be. That generally means a driver is needed for the operating system running on the microprocessor is needed, and it just gets more complicated from there.

So,

  1. Pretty sure more complicated processors and software are being used.
  2. I don't know in general. I recently saw V+ running on old Adept brand robot arms running recently. I was told V+ is like COBOL.
  3. I don't think anything is holding back the field of robotics. They are everywhere now and continually expanding. In your opinion, what do you see is being held back? What do you think of as being a robot?
    Some definitions I found with google:
  • a machine capable of carrying out a complex series of actions automatically, especially one programmable by a computer.
  • a real or imaginary machine that is controlled by a computer and is often made to look like a human or animal.
  • a machine that can do the work of a person and that works automatically or is controlled by a computer.
  • A mechanical device that sometimes resembles a human and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.
  • A machine or device that operates automatically or by remote control.

It seems to me that almost in your house could be considered a robot - automatic coffee maker, alarm clock, turntable, DVD player for the TV, seven day a week furnace thermostat.
There are lots of industrial robots, you can see them assembling cars and electronics in TV commercials all the time, and commercial robots doing things like delivering meds in hospitals, maybe bank ATMs could be argued to be robots even, or the electronics in our cars with cruise control, lane departure warnings, auto parking. And driverless cars starting to make the news more & more.

I don't see anything holding back robotics except imagination.

Yeah, I guess so haha! I just remember reading in a book a while back that the development in hardware pertaining to robotics is outpacing the development of the software or artificial intelligence needed to effectively control that hardware. Then again, as you pointed out it depends on your definition of robot as there are currently many technologies that can be labelled as such.

I think I'm stuck on the Hollywood definition of robot, which in my mind I imagine to be a human like machine that is capable to doing everything that real person could do and I'm sure that something like that is many years off.

I'm still doing my general ED courses at a community college, but in a year I hope to transfer to Berkeley in their EECS program. I just figured I should start learning about this stuff now so I started learning about arduino, though I just feel like I'm missing something. Hopefully, I can figure out what that something is before I transfer.

Anyways, that was off-topic. I appreciate your response, it was very informative!
I'll keep looking up relevant topics online while I await more responses.

Thanks!

As you should know, robots are very rapidly taking over almost all sorts of manufacturing processes that used to be done by humans (like making cars), as well as driving cars.

But those robots are very, very stupid and do only and exactly what they are told to do, very accurately.

I believe that artificial intelligence is a long way in the future, if it will ever happen,and I'm not worried about it.

Arduino can be a great introduction into the difficulties of programming a robot. Try to program one to direct a toy car to navigate a course, and win a race -- it will take months or maybe even years of your time.

jremington:
As you should know, robots are very rapidly taking over almost all sorts of manufacturing processes that used to be done by humans (like making cars), as well as driving cars.

But those robots are very, very stupid and do only and exactly what they are told to do, very accurately.

I believe that artificial intelligence is a long way in the future, if it will ever happen,and I'm not worried about it.

Arduino can be a great introduction into the difficulties of programming a robot. Try to program one to direct a toy car to navigate a course, and win a race -- it will take months or maybe even years of your time.

That video was amazing, thanks for sharing. I'm nowhere near that level of ability to program arduino, but I'm improving everyday and one day I will be able to.

We all start in the same place! The journey can be great fun.

You might be surprised how similar "real world " and hobbyland can be. No..nasa probably isn't using arduino, but asimo might. But also probably not. Bottom line is they use microcontrollers for minor tasked, and those are commanded or guided by computers managing the bigger picture.

As a lifelong hobbyist, I got a job in large commercial building controls (large buildings are like big stationary robots with automated everything behind the scenes) and expected to be way behind everyone else - turns out everything is exactly like hobbyland - there's just more of it in one panel so it looks intimidating at first. Still...just instead of one or two microcontrollers and IOS there is rows and rows and each one is still one of the varieties I've used in my garage. Maybe not by brand, but it's all the same.

You want to step up from arduino? Get a raspberry pi and learn to interface and control multiple arduinos/other microcontrollers from that.

ElEscalador:
You might be surprised how similar "real world " and hobbyland can be. No..nasa probably isn't using arduino, but asimo might. But also probably not. Bottom line is they use microcontrollers for minor tasked, and those are commanded or guided by computers managing the bigger picture.

As a lifelong hobbyist, I got a job in large commercial building controls (large buildings are like big stationary robots with automated everything behind the scenes) and expected to be way behind everyone else - turns out everything is exactly like hobbyland - there's just more of it in one panel so it looks intimidating at first. Still...just instead of one or two microcontrollers and IOS there is rows and rows and each one is still one of the varieties I've used in my garage. Maybe not by brand, but it's all the same.

You want to step up from arduino? Get a raspberry pi and learn to interface and control multiple arduinos/other microcontrollers from that.

That is excellent news, I really appreciate it! As it is, I was actually looking at the raspberry pi a while back when I was starting arduino. I don't think I'm ready to step up to a raspberry just yet as I would like to get a bit more knowledge obtained on the arduino first, but I will definitely keep that on my to-do list! It's good to know I am heading in the right direction.

ElEscalador:
You want to step up from arduino? Get a raspberry pi and learn to interface and control multiple arduinos/other microcontrollers from that.

An Arduino can control many other Arduinos, too. No RPi needed.

As for the RPi, it is a step up in some ways, but it's not always better to use (i.e. controlling servos, limited IO compared to Mega, no analog inputs, etc).

Power_Broker:
An Arduino can control many other Arduinos, too. No RPi needed.

As for the RPi, it is a step up in some ways, but it's not always better to use (i.e. controlling servos, limited IO compared to Mega, no analog inputs, etc).

Definitely true. And in some ways an Arduino could control an Rpi and the Rpi definitely has some limitations - But in the OPs context - it IS closer to what is used in "the real world" that I have seen.

There is no one right answer. What robots use is extremely varied. NASA for example: Curiosity (rover) - Wikipedia scroll down to computers.

I went to college for electronic engineering from 91-95 and learned of MIT's work ($ from NASA grants) just before then from a magazine article
http://www.ai.mit.edu/projects/hannibal/hannibal.html

I can't recall what they were using back then but there are a lot more options available today. I ended up going the IT route after college so I just dabble with electronics/robotics at home now and then.

A place to see some of what is used professionally is Microcontrollers - Page 1

From what I can gather the Arduino's, Pi's etc are looked upon by a lot as toys by a lot* but if you learn the Atmel mcu and can use it then your "professional". Which seems like a good stepping stone since the 'real world' uses the same MCU just not running the Ardiuno software. PIC is the other biggie, I started learning it in college using Parallax's toolchain and more recently picked up a Pickit 3 and have been getting back into PIC as I saved a couple of my old PIC designs, maybe I'll get to see if they actually work.

There are others but Pic and Atmel are the two biggest. Then going up from the MCU level you have the ARM (as used in the Beaglebone, Pi, etc) and x86 as well as some other specialized, those tend to be Linux/BSD or a real time OS or one of the specialized robot OS's. I'd bet that any modern robot has a network of multiple MCU's and/or CPU's just like any other modern complex product (car, airplane, etc).

  • I should say that's is somewhat controversial as you will get some professionals who will defend the use of Arduino/Pi's in their design/products.