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

环境:Ubuntu18.04,ROSmelodic

目录

      • 1.创建功能包
      • 2.新建头文件
      • 3.创建可执行文件


1.创建功能包

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

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

ROS中如何自定义头文件并调用_第2张图片

3.创建可执行文件

先要包含头文件,在c_cpp_properties.json下添加头文件路径,在头文件位置右键复制路径即可,但是一般include后面加两个星号,/include/**,这样可以包含功能包下的所有头文件,不用每次新建头文件都添加路径
ROS中如何自定义头文件并调用_第3张图片
根据头文件的声明在可执行文件中使用,在终端打印出“自定义头文件的使用…”
在主函数中调用,首先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;
}

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


ROS中如何自定义头文件并调用_第8张图片

你可能感兴趣的:(ROS入门学习,c++,vscode,ROS)