0

So, I have this misconception, I think, that software engineering in robotics entails a deep reinforcement learning model and that is it.

So, if you work in this field as a software engineer how large and complex are robotic systems from a software point of view?

Compared to, for example, a compiler, which are large and complex, how complex are the systems that robotic software engineers work on?

Could you also describe the high level architecture of a robotic system?

I have Googled this question but I only get descriptions of the position. I have not found anything related the size and complexity and architecture of a robotic system.

chez93
  • 1
  • Welcome to Robotics, sphereInAManifold. I'm afraid you're question is so open-ended as to be off-topic. At its core a robotic system is sometimes described as "Sense, Think, Act," meaning it samples its environment, makes a decision about that sample, then does something. An air conditioner with a thermostat is a robotic system. An alarm clock or automatic coffee maker is a robotic system. A remote surgery robot is a robotic system. The complexity of the software depends on the complexity of the problem that a particular robot is meant to solve. – Chuck Jan 02 '22 at 20:12

1 Answers1

1

Perhaps surprisingly, you don't need large, complex software systems to produce complex behavior. The book Vehicles: Experiments in Synthetic Psychology (aka Braitenberg Vehicles) does a good job explaining this concept.

As Chuck said, the definition of "robot" is vague and can incorporate lots of things. But lets take for example the Roomba (arguably one of the most prevalent consumer robots). Before it had systematic navigation, you could argue that the code was pretty simple:

  1. Drive straight
  2. If you bump into something, then turn randomly
  3. If your battery is low and you see the dock, then dock yourself
  4. Repeat

Of course, this is a gross oversimplification. But the code for these early Roombas (and many other consumer robots) fit into cheap and small microcontrollers.

The robotics software engineers did not set up some giant reinforcement learning problem to "teach" the Roomba how to clean. Instead, they set up a finite state machine, subsumption architecture, behavior tree, or some other "standard" software architecture. Because at the end of the day, a robot is just a machine programmed to do a task.

Ben
  • 5,855
  • 3
  • 28
  • 48
  • I have a related question, somewhat. Do you need a CS degree or any degree at all to work as a software engineer in the robotics industry in the US? – chez93 Jan 04 '22 at 05:23