代码如下:
`
#include "ros/ros.h"
#include <yaml-cpp/yaml.h>
#include "std_msgs/String.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
ros::init(argc,argv,"yaml_publisher");
ros::NodeHandle nh;
//实例化发布者对象
ros::Publisher pub = nh.advertise<std_msgs::String>("yaml_param",10);
//读取发布信息
std::string my_param;
bool flag = nh.getParam("my_param",my_param);
ROS_INFO("%s",my_param.c_str());
ros::Rate rate(2);
while(ros::ok())
{
pub.publish(my_param.c_str());
ROS_INFO("已发送:%s",my_param.c_str());
rate.sleep();
ros::spinOnce();
}
return 0;
}
`
我在网上查阅了读取yaml文件需要在Cmakelists中配置的语句如下:
`link_directories(/usr/local/lib)
include_directories(/usr/local/include/yaml-cpp)
target_include_directories(demo1_yaml PUBLIC ${DLib_INCLUDE_DIRS} ${DBoW2_INCLUDE_DIRS})`
该配置我已经写到Cmakelists中,发布者的文件可以读取到yaml文件中的内容并存储到我定义的my_param中,打印没有问题,但是加上发布的语句就会报错
代码如下:
`
#include "ros/ros.h"
#include <yaml-cpp/yaml.h>
#include "std_msgs/String.h"
int main(int argc, char *argv[])
{
}
`
我在网上查阅了读取yaml文件需要在Cmakelists中配置的语句如下:
`link_directories(/usr/local/lib)
include_directories(/usr/local/include/yaml-cpp)
target_include_directories(demo1_yaml PUBLIC ${DLib_INCLUDE_DIRS} ${DBoW2_INCLUDE_DIRS})`
该配置我已经写到Cmakelists中,发布者的文件可以读取到yaml文件中的内容并存储到我定义的my_param中,打印没有问题,但是加上发布的语句就会报错