Building Bridges: Leveraging C++ and ROS for Simulators, Sensor Data and Algorithms - CppCon 2023

Building bridges between C++ and ROS for simulators, sensor data, and algorithms, exploring determinism in simulation for reliable and reproducible testing, and discussing approaches, APIs, and libraries for achieving determinism.

Key takeaways
  • Building bridges between C++ and ROS (Robot Operating System) for simulators, sensor data, and algorithms
  • Determinism in simulation: achieving reproducible testing and predictable behavior
  • Challenges in deterministic execution: ordering, synchronization, and caching
  • Introducing the executor: a coordinator that ensures fixed order execution
  • How to make simulator software more deterministic: using APIs, set of execution properties, and DDS (Data Distribution Service)
  • Importance of time determinism: ensuring consistent execution timing
  • Limitations of determinism: not suitable for all scenarios, requires careful implementation
  • Approaches to determinism: data determinism, time determinism, and fixed order execution
  • Use cases for determinism: simulation, testing, and validation of robotic systems
  • APIs and libraries for achieving determinism: C++, DDS, and ROS
  • Simulator bridges: translating between simulators and ROS applications
  • Importance of reproducible testing: catching early functional bugs and ensuring reliable system behavior
  • Open-source simulators: IPG CarMaker, Carla, and others
  • Real-time performance and scalability: ensuring timely execution and handling large datasets
  • Cross-platform compatibility: using C++ and DDS for seamless integration across systems
  • Challenges in distributed systems: ensuring determinism across multiple nodes and processes