Plug-in Based Software Architecture for Robotics
Talkat CppCon 2023 · on Wednesday, 2023-10-04· at 15:15· Cottonwood 2/3, 6700 North Gaylord Rockies Boulevard·
summary
Shows a concrete C++ design: an abstract IMotionPlanner interface, a simple motion‑planner plugin built as a shared library, and a loader that uses dlopen/dlsym to call extern "C" create/delete functions; reproduces that with pluginlib XML+EXPORT macro to avoid C wrappers and to create instances at runtime for MoveIt/ROS. Covers four loader steps (load symbols, call factory, use instance, unload), reports an implemented example repository, and warns about ABI, testing interactions, and security failures.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 0:44Talk outline
- 1:27Plugin architecture benefits
- 4:24Simplified plugin design in C++
- 13:39Plugin manager internals
- 15:28pluginlib for ROS
- 20:51How pluginlib simplifies plugin creation
- 21:13MoveIt plugin overview
- 28:08Plugin architecture limits
- 29:11Summary and resources
- 29:41Q&A: Plugins vs ROS components
- 31:52Q&A: RLQP calls and testing
- 32:57Q&A: Testing plugins
- 33:18Q&A: ROS 2 support
- 34:44Q&A: Security and memory
- 35:47Q&A: Custom vs existing plugins
- 36:48Q&A: Plugins vs strategy pattern
related talks
50mBuild Software Like a Bag of Marbles, Not a Castle of LEGO
51mConsistent architecture diagrams for C++ projects
19mPowering Modularization at Airbnb: Plugin Architecture
37mrlottie: A New Approach to Motion Graphics UI
01h 03mWhat I Talk About When I Talk About Cross Platform Development
54mBuild software like a bag of marbles, not a castle of LEGO®
57mA (Short) Tour of C++ Modules
45mPlugin Oriented Programming A New Way to Scale Development
