赞
踩
按照报错解释,以为是frame id没有正确设置,但其实代码没有问题。代码如下:
void publish_gnss_path(rclcpp::Publisher<nav_msgs::msg::Path>::SharedPtr pubPath) { if (gnss_extrinsic_initialized == false) { return; } set_gps_posestamp(msg_gps_pose); msg_gps_pose.header.frame_id = "camera_init"; msg_gps_pose.header.stamp = get_ros_time(lidar_end_time); /*** if path is too large, the rvis will crash ***/ static int jjjj = 0; jjjj++; if (jjjj % 2 == 0) { gps_path.poses.push_back(msg_gps_pose); pubPath->publish(gps_path); } }
可以看到提示是在time = 0.0的时候,才有frame_id为空。所以联想到应该有一个初始化的动作,告诉这个topic它的frame_id。
在初始化的时候,对gps_path的frame_id赋值。
gps_path.header.stamp = this->get_clock()->now();
gps_path.header.frame_id = "camera_init";
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。