字面意思
你必须在创建NodeHandle之前先调用ros::init()函数
分析报错原因:
在代码里我们先实例化了qnode类,所以在qnode的头文件中,我们先实例化了ros::NodeHandle nh,后调用了ros::init(),导致程序报错。
所以修改代码如下:
qnode.h中注释没有使用的NodeHandle变量
//ros::NodeHandle nh; // 创建一个 ROS 节点句柄,用于与 ROS 系统通信
修改其他:qnode.cpp中使用到nh的地方改为使用n,如:
// 创建一个 ROS 发布者,发布类型为 agv_msgs::LaserObsSch 的消息到名为 pub_obsStatus_name 的话题
pub_obstacle_status = nh.advertise<agv_msgs::LaserObsSch>(pub_obsStatus_name,1);