We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Plug-in Based Software Architecture for Robotics - Abishalini Sivaraman & Anthony Baker CppCon 2023
Learn how plug-in architecture enables modular code, customization, and maintainability in robotics. Explore the benefits, limitations, and best practices for implementing plug-in-based systems in ROS and Moovit projects.
- Use of plug-in architecture in robotics allows for modular code, reducing dependencies and making it easier to maintain and update systems.
- Plug-ins are self-contained modules that can be loaded and unloaded at runtime, allowing for flexibility and customization.
- To load a plug-in, you need to create a class loader instance, load the shared library, and retrieve the addresses of the functions in the shared library.
- When creating a plug-in, you need to define the interface and implementation, and ensure that the interface is not mangled by the compiler.
- Plug-in managers are responsible for loading and unloading plug-ins, finding symbols in the plug-ins, and invoking the right functions to execute.
- Plug-ins can be tested individually and as part of the larger system, and can be used to implement different algorithms and functionality.
- Some limitations of plug-in architecture include the need for standardized interfaces, potential for ABI mismatch, and limitations in testing.
- ROS (Robot Operating System) uses plug-ins to implement plugin-based systems.
- Moovit, a project that uses plug-ins, has used pluginlib to implement its plug-in architecture.
- Within Moovit, plug-ins are used for motion planning, trajectory smoothing, and kinematics.
- Plug-inlib is a library used in robotics to implement plug-in-based systems.
- Creating a simple motion planner plug-in involves defining the interface and implementation, and loading the plug-in into the system.
- The library name, shared library name, and suffix are important components of the plug-in architecture.
- Unit tests and integration tests are important for testing plug-ins.
- Plug-in architecture allows for flexible and customizable systems, making it a valuable tool in robotics.
- To ensure ABI stability, plug-ins should be compiled with the same or compatible compiler as the core system.