138fa731创建于 2023年2月25日历史提交

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

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

  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/