Ingo presented how determinism can effect a robotic system. The talk provides an overview of causes of non-determinism. Followed by specific examples of diagnosing determinism in a robotic system and the benefits of eliminating the sources of non-determinism.
ROS’s foundational style, the asynchronous, loosely coupled compute graph, is great for re-use and distribution, but there’s a catch: Nothing guarantees execution ordering. This means, the order in which callbacks and timers are executed can change even when inputs are the same. In many important cases, this leads to different results, and – subtly or not so subtly – changes the robot’s behavior. As an example, in the common movebase node, we found reaction times changing between 50 and 200ms, while pure computation time was only 20ms. I will show why this happens, and how to address it, both in the movebase and in general.
View the slides here