ROS第四梯:ROS项目中添加自定义类

news2024/11/12 10:36:58

第一步,ROS项目结构介绍

工作空间中包含一个名为pcl_ros_test的功能包,其中main.cpp是原有项目自带的,接下来以CommonAlg自定义类添加为例进行介绍。

第二步:头文件CommonAlg.h创建和编写,并保存在include/pcl_ros_test下:

//系统
#include <string>


#ifndef COMMON_H
#define COMMON_H

namespace test
{
    class CommonAlg
    {
        public:
        /* 
        @brief: 判断文件是否存在
        @param[in]: 文件绝对路径
        @return: 存在为True,否则为False
        */
        static bool existFile(const std::string& filePath);
    };
};
#endif //COMMON_H

第三步,源文件CommonAlg.cpp创建和编写,并保存在src下:

#include "pcl_ros_test/CommonAlg.h"

//系统
#include <string.h> 
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <unistd.h>
#include <sys/stat.h>   // 注意:这个头文件在sys下面
#include <cstdio>
#include <dirent.h>

/* 
@brief: 判断文件是否存在
@param[in]: 文件绝对路径
@return: 存在为True,否则为False
*/
bool CommonAlg::existFile(const std::string& filePath)
{
    std::ifstream infile(filePath);
    if(infile.is_open())
    {
        infile.close();
        return true;
    }
    else
    {
        infile.close();
        return false;
    }   
}

第四步,环境配置

功能包下的CMakeLists.txt文件修改:

①:

// 配置catkin编译器的编译规则  
catkin_package(  
 INCLUDE_DIRS include  
#  LIBRARIES test  
 CATKIN_DEPENDS roscpp std_msgs // 加载链接所需的共享库  
#  DEPENDS system_lib  
)

②:

//自定义包含路径
include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

③:

//将自定义文件添加到可执行文件路径下
add_executable(main_node src/main.cpp include/pcl_ros_test/CommonAlg.h src/CommonAlg.cpp)
target_link_libraries(main_node ${catkin_LIBRARIES})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达梦数据库导入xml迁移到达梦数据库大文件导致中断问题解决方案记录?

问题&#xff1a;我将同事给我的xml文件迁移到盗梦数据库&#xff0c;xml文件大约2G&#xff0c;在导入过程中&#xff0c;总是导入一半都不到就失败了。 原因&#xff1a;我的原因是我的电脑的系统的运行内存是16G的&#xff0c;后来我发现在没导入之前&#xff0c;其他进程已…

GUI编程18:文本框、密码框、文本域

视频链接&#xff1a;20、文本框、密码框、文本域_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p20&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.文本框 示例代码&#xff1a; package com.yundait.lesson06;import javax.swing.*; import java.a…

初始分布式系统和Redis特点(

&#xff08;一&#xff09;认识redis Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合&#xff0c;位图&#xff0c;hyperlog…

『功能项目』QFrameWorkBug修改器界面【65】

我们打开上一篇64QFrameWork道具栏物品生成的项目&#xff0c; 本章要做的事情是做一个道具bug调试面板&#xff0c;可以增加主角属性&#xff0c;可以增加道具的功能 首先创建一个空物体&#xff08;钉子&#xff09; 按住Alt键将空物体钉到左侧 重命名为Left 创建Button、Im…

基于SpringBoot+Vue的企业会议室预定管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

Qt实战案例(60)——利用QTimer类实现实时时间功能

目录 一、项目介绍二、项目基本配置三、UI界面设置四、主程序实现4.1 widget.h头文件4.2 widget.cpp源文件 五、效果演示 一、项目介绍 本文介绍利用QTimer类实现实时时间功能并在状态栏中进行显示。 二、项目基本配置 新建一个Qt案例&#xff0c;项目名称为“TimeTest”&am…

阿里通义千问开源Qwen2.5系列模型:Qwen2-VL-72B媲美GPT-4

通义千问团队近日重磅宣布&#xff0c;继其Qwen2模型发布仅三个月后&#xff0c;再次推出Qwen家族的全新成员——Qwen2.5系列语言模型&#xff0c;并已全面开源。这次开源行动堪称史上规模之最&#xff0c;涵盖了通用型Qwen2.5&#xff0c;以及专为编程和数学领域打造的Qwen2.5…

如何使用ssm实现基于ssm框架的车辆出租管理系统+vue

TOC ssm643基于ssm框架的车辆出租管理系统vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域…

【python】【绘制小程序】动态爱心绘制

背景介绍 参考链接&#xff1a;https://blog.csdn.net/Python_HUHU/article/details/139703289点的背景颜色在开始修改&#xff1b;文字的颜色在最后修改。文字内容可以修改。 python 代码 import tkinter as tk import random from math import sin, cos, pi, log from PIL…

机房监控运维工作的全面优化:以监控易一体化运维软件为助力

在当今高度信息化的社会&#xff0c;数据中心的运维工作显得尤为重要。为了确保机房环境的稳定、服务器和存储设备的正常运行、操作系统和数据库的持续高效&#xff0c;以及中间件服务的可靠性&#xff0c;运维团队需要执行一系列精细化的管理和操作。本文将以监控易一体化运维…

计算机网路(应用层)

客户/服务方式&#xff08;C/S&#xff09;方式和对等方式&#xff08;P2P方式&#xff09; 客户/服务器方式&#xff08;Client/Server&#xff0c;C/S&#xff09;方式 客户/服务器是指通信中所涉及的两个应用进程。 客户/服务器方式所描述的是进程之间的服务和被服务的关…

【STL】priority_queue 基础,应用与操作

c在C的标准模板库&#xff08;STL&#xff09;中&#xff0c;priority_queue 是一个基于堆的容器适配器&#xff0c;用于实现优先级队列。它本质上是一个最大堆&#xff08;Max-Heap&#xff09;&#xff0c;即每次取出元素时&#xff0c;始终取出优先级最高的元素。本文将详细…

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机&#xff0c;包含了 sql 注入&#xff0c;文件包含&#xff0c;代码审计&#xff0c;内核提权。整体也是比较简单的内容&#xff0c;和大家一起学习 Billu_b0x.zip 靶机地址&#xff1a; https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…

Java Web服务运行一段时间后出现cpu升高导致的性能下降问题排查

背景 有个web服务&#xff0c;运行一段时间后&#xff0c;出现cpu逐渐占用高&#xff0c;服务处理请求整体性能下降问题。 异常情况时&#xff0c; 同时jvm的cpu上涨 最终表现为&#xff0c;处理内部逻辑执行耗时变高。 排查原因 原来服务的jvm启动参数带了 -XX:-TieredCom…

云上办公项目总结

云尚办公系统是一套自动办公系统&#xff0c;系统主要包含&#xff1a;管理端和员工端 管理端包含&#xff1a;权限管理、审批管理、公众号菜单管理 员工端采用微信公众号操作&#xff0c;包含&#xff1a;办公审批、微信授权登录、消息推送等功能 项目服务器端架构&#xff…

动手学习RAG:大模型重排模型 bge-reranker-v2-gemma微调

动手学习RAG: 向量模型动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习动手学习RAG&#xff1a;rerank模型微调实践 bge-reranker-v2-m3动手学习RAG&#xff1a;迟交互模型colbert微调实践 bge-m3动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct动手学…

光伏业务管理系统:全流程管理成重点

一、光伏业务管理的挑战 光伏业务管理涉及项目规划、设计选型、施工建设、运营维护、数据分析等多个环节&#xff0c;每一个环节都直接关系到项目的经济性、安全性和可持续性。传统的管理方式往往存在信息不对称、流程不透明、响应速度慢等问题&#xff0c;难以适应光伏产业快…

现在市场上有哪些大模型?什么样的大模型适合国内企业?

从23年ChatGPT爆火以来&#xff0c;国内各大厂商也争先入局&#xff0c;国内大模型发展也经历了“百模大战”&#xff0c;截止最新已经发展到了180多个大模型&#xff0c;在大模型发展上&#xff0c;国内正在奋起直追&#xff0c;国内外第一梯队大模型在中文领域的通用能力差距…

基于ssm的本科生毕业设计选题系统的设计与实现

需要项目源码请联系我&#xff0c;目前有各类成品 毕设 javaweb ssh ssm springboot等等项目框架&#xff0c;源码丰富。 专业团队&#xff0c;咨询就送开题报告&#xff0c;活动限时免费&#xff0c;有需要的朋友可以来留言咨询。 一、摘要 随着高校信息化管理系统平台的广泛…

行业大模型落地提速释放新动力

中国科学院地球化学研究所与阿里云联合发布国际首个月球科学多模态专业大模型&#xff0c;京东云带来了代表性的大模型数字人的展示与互动&#xff0c;济南市选择大模型产业链打造“大模型创新工厂”&#xff0c;以奇安信、360等为代表的安全厂商带来了“AI安全”的行业大模型产…