【发布时间】:2022-08-09 02:03:19
【问题描述】:
我的目标是创建一个订户和一个出版商在里面同一个节点!
我想访问关于rosbag 主题的可用消息的一部分。
该线程的消息如下:
Type: radar_msgs/RadarDetectionArray
std_msgs/Header header
uint32 seq
time stamp
string frame_id
radar_msgs/RadarDetection[] detections
uint16 detection_id
geometry_msgs/Point position
float64 x
float64 y
float64 z
geometry_msgs/Vector3 velocity
float64 x
float64 y
float64 z
float64 amplitude
我只希望访问位置“x”,然后再发布。
#include \"ros/ros.h\"
#include \"std_msgs/String.h\"
#include \"radar_msgs/RadarDetection.h\"
#include \"radar_msgs/RadarDetectionArray.h\"
#include \"geometry_msgs/Point.h\"
//radar_msgs::RadarDetectionArray pub_data;
double pub_data;
void srr2Callback(const radar_msgs::RadarDetection msg)
{
pub_data = msg.position.x;
}
int main(int argc, char **argv)
{
ros::init(argc, argv, \"talker\");
ros::NodeHandle n;
ros::Publisher chatter_pub = n.advertise<radar_msgs::RadarDetection>(\"srr2_detections\", 1000);
ros::Subscriber sub = n.subscribe(\"/rear_srr/rear_right_srr/as_tx/detections\", 1000, srr2Callback);
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok())
{
chatter_pub.publish(pub_data);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0;
}
我也分享我得到的错误!
error: request for member ‘__getMD5Sum’ in ‘m’, which is of non-class type ‘const double’
return m.__getMD5Sum().c_str();
error: request for member ‘__getDataType’ in ‘m’, which is of non-class type ‘const double’
return m.__getDataType().c_str();
标签: c++ ros publisher subscriber