环境: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执行,成功运行