ros2 包依赖自己内部的srv编写cmakeLists.txt
时间: 2024-03-11 16:43:28 浏览: 207
基于openpose搭建自己的程序时CMakeList配置,包括ros环境下配置
在ROS2中,如果一个包依赖于自己内部的srv文件,可以在CMakeLists.txt文件中添加以下内容:
```
find_package(rosidl_default_generators REQUIRED)
# Add the service files to generate messages from
set(srv_files
"srv/MyService.srv"
)
# Generate language-specific message and service files
rosidl_generate_interfaces(${PROJECT_NAME}
${srv_files}
DEPENDENCIES builtin_interfaces
)
# Add the generated messages and services to the package
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)
ament_export_dependencies(rosidl_default_runtime)
```
其中,`find_package(rosidl_default_generators REQUIRED)`用于查找rosidl默认生成器。`set(srv_files)`用于指定服务文件的路径和名称。`rosidl_generate_interfaces()`用于生成服务文件对应的消息和服务代码。`ament_export_targets()`和`ament_export_dependencies()`用于将生成的代码添加到包中,并导出依赖项。
在执行`colcon build`时,CMake将自动检测到srv文件的更改并重新生成代码。
阅读全文