ROSCon 2019 Macau: Concurrency in ROS 1 and 2: from AsyncSpinner to MultithreadedExecutor
Nicolo’ Valigi (Cruise Automation)
While today's robotics systems heavily rely on both concurrency and parallelism for performance, these concepts tend to be confusing and cause many bugs in production. In other words, why can’t your stack use 100% of the CPU without intolerable latency? This talk will trace an overview of the tools available to roboticists, starting from OS-level processes and threads, to the ROS 1 model of spinners and callback queues. We’ll then introduce the improvements in ROS 2, with callback groups and custom executors. Throughout the journey, we’ll discuss gotchas and strategies to help improve throughout without killing latency.
Video presented at ROSCon 2019. More details and slides are available at: roscon.ros.org/2019/.