ROS_package 、CMakeLists.txt、package.xml、ROS_node之间的关系

2024-08-22 22:20

本文主要是介绍ROS_package 、CMakeLists.txt、package.xml、ROS_node之间的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、整体框架结构

二、关系描述

1、ROS.cpp

里面初始化了一个ROS节点,注意我的源文件里面只初始化了一个节点

// ROS.cpp
#include "ros/ros.h"int main(int argc, char **argv)
{ros::init(argc, argv, "node_name"); // 指定节点名称为 "node_name"ros::NodeHandle n;// 节点的功能实现// ...ros::spin(); // 保持节点运行return 0;
}

2、CMakeLists.txt

        CMakeLists.txt文件定义了如何构建 ROS 包中的节点。这包括设置编译器标志、包含头文件目录以及链接库文件等。

        节点的可执行文件名不需要和节点名相同,上面我的源代码里面只初始化了一个节点,所以节点的可执行文件名可以随便取。

eg.  CMakeLists.tx

cmake_minimum_required(VERSION 3.0.2)
project(ROS_package1)find_package(catkin REQUIRED COMPONENTSroscppstd_msgs
)catkin_package(INCLUDE_DIRS includeLIBRARIES ROS_package1CATKIN_DEPENDS roscpp std_msgs
)include_directories(include${catkin_INCLUDE_DIRS}
)add_executable(node_executable src/ROS.cpp)target_link_libraries(node_executable${catkin_LIBRARIES}
)
  • project(ROS_package1) 声明包的名称,这个名称与package.xml中的包名相同。
  • find_package(catkin REQUIRED COMPONENTS ...) 查找并加载包所需的依赖项。
  • add_executable(node_executable src/ROS.cpp) 定义一个名为node_executable的可执行文件,它的源文件是src/ROS.cpp
  • target_link_libraries(node_executable ${catkin_LIBRARIES}) catkin库链接到可执行文件node_executable上,以确保其依赖项正确链接。

3、Package.xml

        Package.xml是 ROS 包的元数据文件,主要用于描述包的信息,如包名、版本、依赖关系等。在这个文件中,包名ROS_package1通过<name> 标签指定。                       <name>ROS_package1</name>

4、运行节点指令(默认已经roscore和source了)

rosrun   包名   节点可执行文件名

rosrun ROS_package1 node_executable

这篇关于ROS_package 、CMakeLists.txt、package.xml、ROS_node之间的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097563

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

java中XML的使用全过程

《java中XML的使用全过程》:本文主要介绍java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录什么是XML特点XML作用XML的编写语法基本语法特殊字符编写约束XML的书写格式DTD文档schema文档解析XML的方法​​DOM解析XM

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Python如何将大TXT文件分割成4KB小文件

《Python如何将大TXT文件分割成4KB小文件》处理大文本文件是程序员经常遇到的挑战,特别是当我们需要把一个几百MB甚至几个GB的TXT文件分割成小块时,下面我们来聊聊如何用Python自动完成这... 目录为什么需要分割TXT文件基础版:按行分割进阶版:精确控制文件大小完美解决方案:支持UTF-8编码