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

  1. Download RPM

aarch64:

wget https://117.78.1.88/build/home:davidhan:branches:openEuler:22.03:LTS/standard_aarch64/aarch64/ros-noetic-ros-class_loader/ros-noetic-ros-class_loader-0.5.1-1.oe2203.aarch64.rpm

x86_64:

wget https://117.78.1.88/build/home:davidhan:branches:openEuler:22.03:LTS/standard_x86_64/x86_64/ros-noetic-ros-class_loader/ros-noetic-ros-class_loader-0.5.1.oe2203.x86_64.rpm

  1. 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

  1. Fork the repository
  2. Create Feat_xxx branch
  3. Commit your code
  4. Create Pull Request

Gitee Feature

  1. You can use Readme_XXX.md to support different languages, such as Readme_en.md, Readme_zh.md
  2. Gitee blog blog.gitee.com
  3. Explore open source project https://gitee.com/explore
  4. The most valuable open source project GVP
  5. The manual of Gitee https://gitee.com/help
  6. The most popular members https://gitee.com/gitee-stars/