ros2_class_loader:基于ROS生态的运行时插件加载工具项目

ROS-independent library for dynamic class.

分支1Tags0
文件最后提交记录最后更新时间
3 年前
3 年前
3 年前
3 年前
3 年前

class_loader

介绍

class_loader节点

class_loader包是一个独立于ROS的包,用于在运行时加载插件,并且是更高级别ROS'pluginlib'库的基础。class_loader利用主机操作系统的运行时加载程序打开运行时库(例如.so/.dll/dylib文件),自省导出的插件类的库,并允许用户实例化所述导出类的对象,而无需这些类的显式声明(即头文件)。

软件架构

软件架构说明

https://github.com/ros2/class_loader.git

文件内容:

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

安装教程

  1. 下载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. 安装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

使用说明

依赖环境安装:

sh /opt/ros/foxy/install_dependence.sh

安装完成以后,在/opt/ros/foxy/目录下有如下输出,则表示安装成功。

输出:

./
├── 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

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

项目介绍

ROS-independent library for dynamic class.

定制我的领域