ROS中如何自定义头文件并调用

环境:Ubuntu18.04,ROSmelodic


1.创建功能包

打开vscode,在工作空间src目录下右键单击create catkin package,命名功能包,这里命名为self_definition,回车,继续添加依赖项,roscpp rospy std_msgs,再次回车则一个新的功能包创建完成(首次使用vscode看这里->如何在ROS中使用VScode创建功能包并编写cpp文件
在这里插入图片描述

2.新建头文件

鼠标放置在在功能包self_definition中include的self_definition目录下右键创建头文件self.h
首先声明头文件,然后在里面声明namespce、class和函数

#ifndef _SELF_H
#define _SELF_H
namespace self_ns{

class self_cl {

public:
    void zidingyi();
};

}
#endif

在这里插入图片描述

3.创建可执行文件

先要包含头文件,在c_cpp_properties.json下添加头文件路径,在头文件位置右键复制路径即可,但是一般include后面加两个星号,/include/**,这样可以包含功能包下的所有头文件,不用每次新建头文件都添加路径
在这里插入图片描述
根据头文件的声明在可执行文件中使用,在终端打印出“自定义头文件的使用…”
在主函数中调用,首先setlocale放置中文乱码,再初始化节点,最后调用前面的函数。

#include "ros/ros.h"
#include "self_definition/self.h"

namespace self_ns {

void self_cl::zidingyi(){
    ROS_INFO("自定义头文件的使用....");
}

}

int main(int argc, char *argv[])
{
    setlocale(LC_ALL,"");//设置中文防止乱码
    ros::init(argc,argv,"head_info");//节点初始化
    //函数调用
    self_ns::self_cl print_info;
    print_info.zidingyi();
    return 0;
}

在这里插入图片描述
修改CMakeLists.txt文件中的add_executable、add_dependencies、target_link_libraries,这几个部分改成自己创建的可执行文件名,这里是self
在这里插入图片描述
继续把119行include的注释去掉
在这里插入图片描述
Ctrl+shift+B进行编译
在这里插入图片描述
编译后打开新终端,设置环境变量,rosrun执行,成功运行
在这里插入图片描述


在这里插入图片描述

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值