目录
起点
代码更新
添加包依赖
类定义
没有主方法
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 -->