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

相关文章

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip