0
$\begingroup$

Rosanswers logo

I want to achieve receiving and transform data using rostopic at the same time or in a low time. I know that ros::subscriber can subscribe rostopic and receive the data included in topic. So I hope to process the data in one topic and send the processing-data to another topic, and others can subscribe the new topic. Such as the code:

void receiveGPS(const sensor_msgs::NavSatFix::ConstPtr &msg)
{

  gps_common::GPSFix gps;

  gps.header.stamp=msg->header.stamp;

  gps.status.status=msg->status.status;

  gps.latitude=msg->latitude;

  gps.longitude=msg->longitude;

  gps.altitude=msg->altitude;

  gps.position_covariance[0]=msg->position_covariance[0];
  gps.position_covariance[4]=msg->position_covariance[4];
  gps.position_covariance[8]=msg->position_covariance[8];
}

int main(int argc, char **argv)
{
  
// Set up ROS.

  ros::init(argc, argv, "receiveGPS");

  ros::NodeHandle n;

  ros::Subscriber sub = n.subscribe("gps", 2,&receiveGPS);

  ros::spin();

}

I can get gps.latitude from the topic "gps",and I hope to send gps.latitude to another topic and publish it. Could you tell me what should I do next? Thanks!


Originally posted by hudaming on ROS Answers with karma: 13 on 2017-06-27

Post score: 0


Original comments

Comment by allenh1 on 2017-06-27:
Are you talking about a node that's simultaneously a subscriber and a publisher?

Comment by hudaming on 2017-06-28:
I hope to subscribe the topic and deal with the data in it firstly, and the send the processed data to another topic that can be subscribed.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

If my understanding is correct, what you want to do is subscribe to a message, process that message in the callback, then publish the processed message as another topic. You can just publish the message inside your callback. An example can be find from here.

A class is defined in the example I mentioned. You can also use global function as that in your sample code.


Originally posted by Haibo with karma: 91 on 2017-06-28

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by hudaming on 2017-06-28:
OK! You are right, I will try it soon. This is my first time using Q&A, this is a good start for me! Thank you!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.