【ROS2】中级-编写可组合节点 (C++)

目录

  •  起点

  •  代码更新

    • 添加包依赖

    •  类定义

    • 没有主方法

    •  CMake 变更

  •  运行您的节点

 起点

我们假设你有一个常规的 rclcpp::Node 可执行文件,你希望在与其他节点相同的进程中运行它,以实现更高效的通信。

我们将从一个直接继承自 Node 的类开始,并且定义了一个主方法。

namespace palomino
{
    class VincentDriver : public rclcpp::Node
    {
        // ...
    };
}


int main(int argc, char * argv[])
{
    rclcpp::init(argc, argv);
    rclcpp::spin(std::make_shared<palomino::VincentDriver>());
    rclcpp::shutdown();
    return 0;
}

这通常会在您的 Cmake 中编译为可执行文件。

# ...
add_executable(vincent_driver src/vincent_driver.cpp)
# ...
install(TARGETS vincent_driver
    DESTINATION lib/${PROJECT_NAME}
)

 代码更新 

添加包依赖项

您的 package.xml 应该依赖于 rclcpp_components ,类似于

<depend>rclcpp_components</depend>

或者,您可以独立添加一个 build_depend/exec_depend 。

<?xml version="1.0"?>
<!-- XML 版本声明 -->


<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<!-- XML 模型声明,定义了 ROS 包的格式 -->


<package format="3">
<!-- 开始定义一个 ROS 包,格式为 3 -->


  <name>composition</name>
  <!-- 包的名称为 composition -->


  <version>0.33.4</version>
  <!-- 包的版本号为 0.33.4 -->


  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值