Practice the ROS2 The Logging Bottleneck coding problem in Integration. Browser-based execution with automated grading — no local ROS install required. 0% of engineers pass this challenge.
A sensor data logging node records all LiDAR scans to SQLite for post-shift analysis. After adding it to the navigation stack, nav2 latency jumped from 5ms to 80ms. Disabling logging returns latency to 5ms.
The bug: sqlite3.Connection.commit() is synchronous and takes 20–40ms per call. Called at 20Hz inside the subscriber callback, it blocks the entire ROS2 executor thread. All other callbacks queue up behind the SQLite write.
Fix: move the SQLite write to a separate daemon thread using queue.Queue(). The subscriber callback should only enqueue the data — never block.
It is a hands-on Integration challenge on SimuCode where you implement and run ROS2 code in the browser with runtime-verified tests.
Open this page, sign in, and solve the problem in the built-in IDE. Your solution is graded against real ROS2 execution checks.
This Medium problem focuses on sqlite, threading, queue skills used in robotics interviews and production systems.