第一步,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})