Skip to content

作业:参数服务器在发布时出错 #17

Description

@cqjLearner

代码如下:
`
#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中,打印没有问题,但是加上发布的语句就会报错

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions