class_loader
Description
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS "pluginlib" library. class_loader utilizes the host operating system's runtime loader to open runtime libraries (e.g. .so/.dll files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
Software Architecture
Software architecture description
The interface is provided through two classes, class_loader::ClassLoader and class_loader::MultiLibraryClassLoader. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries.
input:
class_loader/
├── CHANGELOG.rst
├── cmake
│ ├── class_loader-extras.cmake
│ └── PocoConfig.cmake
├── CMakeLists.txt
├── doc
│ └── class_loader_classdiagram.dia
├── include
│ └── class_loader
├── package.xml
├── scripts
│ └── class_loader_headers_update.py
├── src
│ ├── class_loader_core.cpp
│ ├── class_loader.cpp
│ ├── class_loader.pc.in
│ ├── meta_object.cpp
│ └── multi_library_class_loader.cpp
└── test
├── base.hpp
├── CMakeLists.txt
├── plugins1.cpp
├── plugins2.cpp
├── shared_ptr_test.cpp
├── unique_ptr_test.cpp
└── utest.cpp
Installation
- Download RPM
aarch64:
x86_64:
- Install RPM
aarch64:
sudo rpm -ivh ros-noetic-ros-catkin-0.5.1-1.oe2203.aarch64.rpm --nodeps --force
x86_64:
sudo rpm -ivh ros-noetic-ros-catkin-0.5.1-1.oe2203.x86_64.rpm --nodeps --force
Instructions
Dependence installation
sh /opt/ros/noetic/install_dependence.sh
Exit the following output file under the /opt/ros/noetic/ directory , Prove that the software installation is successful
output:
class_loader/
├── cmake.lock
├── env.sh
├── lib
│ ├── class_loader
│ ├── libclass_loader.so
│ └── pkgconfig
│ └── class_loader.pc
├── local_setup.bash
├── local_setup.sh
├── local_setup.zsh
├── setup.bash
├── setup.sh
├── _setup_util.py
├── setup.zsh
└── share
└── class_loader
└── cmake
Contribution
- Fork the repository
- Create Feat_xxx branch
- Commit your code
- Create Pull Request
Gitee Feature
- You can use Readme_XXX.md to support different languages, such as Readme_en.md, Readme_zh.md
- Gitee blog blog.gitee.com
- Explore open source project https://gitee.com/explore
- The most valuable open source project GVP
- The manual of Gitee https://gitee.com/help
- The most popular members https://gitee.com/gitee-stars/