什么是组件容器
- 在不同的进程中运行多个节点。这样可以使不同的进程独立开。一个崩溃其他可以正常运行。也更方便调试各个节点。
- 在同一个进程中运行多个节点。这样可以使得通信更加高效。
组件容器功能就是用来实现将多个包中的多个节点放于同一个进程中执行。
组件容器本质上也是一个包中的一个可执行文件而已,这个可执行文件会启动所有加载到这个组件容器中的节点。
ros2 run rclcpp_components component_container
组件的实现原理
单进程运行所有节点。
可组合节点--节点组件
什么是节点组件
将节点对象(插件)使用rclcpp_components库中的宏RCLCPP_COMPONENTS_REGISTER_NODE()进行注册到一个组件中,最后通过cmake构建将这个组件生成共享库;在通过component_container容器工具就可以使用这个组件,component_container容器工具可以自动加载共享库,并启动拱北封装在共享库中的组件的节点。
为什么需要可组合节点
为了单进程通信,提高通信效率。
创建可组合节点时构造函数为什么需要rclcpp::NodeOption的参数
节点对象包含了很多可配置的属性,包括节点名称、命名空间、参数等,这些选项可以在运行时根据需要进行动态调整。通过将rclcpp::NodeO