skip to content
Casual Reasoning

Robot Software Manifesto

Principles of a *high quality robot software. *subjective

Robot Software Manifesto

Pillars of robot software stack

  • Software engineering practices
  • Unit Tests
  • Logs
  • Dumps (crash/memory)
  • Visualization
  • System behaviour description
  • System Tests
  • Hardware Tests

Most important thing is testing

Testing and validation is already hard for complex-sizable software. Throw in dynamic, partially observable, nondeterministic, competitive, continuous, sequential environment and get ready to lose your hair.

See: Why there aren’t more robots out there?

Any third party library should be abstacted. (Including ROS, especially ROS)

ROS is indispensible in the toolbox of many companies for a good reason. It provides valuable mechanisms that help with logging, communication, visualization, debugging etc. But such blessings can be curse when we don’t properly utilize them.