Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I want to know:

Do you need hardware skills to be a robotic programmer?

share|improve this question
add comment

3 Answers 3

up vote 2 down vote accepted

Depends what programming of what robots.

When programming industrial robots, you usually need to know pretty well the ins and outs of how this specific model is constructed. Perhaps not to the level of individual nuts and bolts, but you eed to know how much load it can handle, what forces/speeds/accelereations are allowed, which positions result in lower capacity or positioning quality etc. This is rarely a problem though, because before anyone ever lets you (or your program) near a robot on factory floor, you go through manufacturer's training.

share|improve this answer
add comment

It depends on the level you program the robot on. Have all the hardware abstractions already been programmed? If not, it's a lot like embedded development and you'll need to know the strengths and limits of the hardware pretty well.

Many robots these days run embedded linux. What if a new, custom device was added to the robot? You'd have to write a driver software. So you should have a thorough understanding of how to program close to system and hardware. You don't need to be an expert on hardware, but fundamental knowledge of digital circuits and electronics is mandatory.

You should also have some knowledge of mechatronics. It's much like business software: You can't write good software if you don't know your business domain well.

Of course, if you don't develop the robots on your own but just get one from a vendor, the APIs and abstractions have already been written. Then it boils down to end-user programming, often with custom languages, and the hardware isn't that important anymore. You can then focus on the tasks the robot should carry out. This can be a broad range of tasks, from very trivial ones (easy movement sequences) to very complex ones (decision making on basis of complex data, AI).

In conclusion, you can say:

  • If you want to program robot systems, then yes, knowledge of the hardware is necessary.
  • If you want to just write applications for a given platform, then knowledge of the hardware might or might not be necessary, but it'd be an advantage to have.

Edit: btw, most robot programmers and embedded developers I know are electronics engineers.

However, all this is subject to change in the future. Programming computers has come a long, long way. In the early days of computers, you had to know your hardware pretty well. Today, this knowledge has become less and less relevant to programmers in most fields. The same will probably happen to robots one day.

share|improve this answer
    
+1 for the excellent explanation. –  Randolf R-F Jul 31 '11 at 11:41
add comment

I'm not in that field, so I can't say how easy it would be to get a job without knowledge of hardware skills.

Though for the programming part you can for sure do this without knowing much about hardware. I played around with the Gazebo Project once and my lack of hardware knowledge was no problem at all. There are many other robot simulators of that kind and as far as I can say, all modern robots have a very abstract interface for their functionality, that allows programming them in high languages like C++ or Python with simple commands that control their functionality.

I think the requirements for this part of programming robots are more on the line of image processing, path finding and in general search algorithms of the artificial intelligence kind that enable you to write software that lets the robot interact with a complex environment and make smart decisions.

As an example: The well known RoboCup Contest has for it's Rescue Contest a Simulation League where teams compete in the USARSim environment, so they can test their software against other teams even if they don't have robots of their own. Those tasks, exploring a simulated disaster area and finding victims need specialists in many areas. 9not sure if this league is still active, but it was for many years)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.