class_loader
Description
The class_loader node
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/dylib 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
https://github.com/ros2/class_loader.git
input:
class_loader/
├── CHANGELOG.rst
├── CMakeLists.txt
├── CONTRIBUTING.md
├── Doxyfile
├── LICENSE
├── QUALITY_DECLARATION.md
├── README.md
├── class_loader-extras.cmake
├── cmake
│ └── class_loader_hide_library_symbols.cmake
├── doc
│ └── class_loader_classdiagram.dia
├── include
│ └── class_loader
│ ├── class_loader.hpp
│ ├── class_loader_core.hpp
│ ├── exceptions.hpp
│ ├── meta_object.hpp
│ ├── multi_library_class_loader.hpp
│ ├── register_macro.hpp
│ └── visibility_control.hpp
├── package.xml
├── src
│ ├── class_loader.cpp
│ ├── class_loader.pc.in
│ ├── class_loader_core.cpp
│ ├── meta_object.cpp
│ └── multi_library_class_loader.cpp
└── test
├── CMakeLists.txt
├── base.hpp
├── fviz_case_study
│ ├── CMakeLists.txt
│ ├── fviz.cpp
│ ├── fviz.hpp
│ ├── fviz_default_plugin.cpp
│ ├── fviz_main.cpp
│ ├── fviz_plugin_base.hpp
│ └── fviz_test.cpp
├── global_plugins.cpp
├── plugins1.cpp
├── plugins2.cpp
├── unique_ptr_test.cpp
└── utest.cpp
Installation
- Download RPM
aarch64:
wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_aarch64/aarch64/class_loader/ros-foxy-ros-class_loader-2.0.3-1.oe2203.aarch64.rpm
x86_64:
wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_x86_64/x86_64/class_loader/ros-foxy-ros-class_loader-2.0.3-1.oe2203.x86_64.rpm
- Install RPM
aarch64:
sudo rpm -ivh --nodeps --force ros-foxy-ros-class_loader-2.0.3-1.oe2203.aarch64.rpm
x86_64:
sudo rpm -ivh --nodeps --force ros-foxy-ros-class_loader-2.0.3-1.oe2203.x86_64.rpm
Instructions
Dependence installation:
sh /opt/ros/foxy/install_dependence.sh
Exit the following output file under the /opt/ros/foxy/ directory,Prove that the software installation is successful.
output:
./
├── include
│ └── class_loader
│ ├── class_loader_core.hpp
│ ├── class_loader.hpp
│ ├── exceptions.hpp
│ ├── meta_object.hpp
│ ├── multi_library_class_loader.hpp
│ ├── register_macro.hpp
│ └── visibility_control.hpp
├── lib
│ └── libclass_loader.so
└── share
├── ament_index
│ └── resource_index
├── class_loader
│ ├── cmake
│ ├── environment
│ ├── hook
│ ├── local_setup.bash
│ ├── local_setup.dsv
│ ├── local_setup.sh
│ ├── local_setup.zsh
│ ├── package.bash
│ ├── package.dsv
│ ├── package.ps1
│ ├── package.sh
│ ├── package.xml
│ └── package.zsh
└── colcon-core
└── packages
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/