Retrieve first message in a topic
Hi,
I need to retrieve the first message from a ros topic and store it in variable or a file. Is there a way to do so?
Thanks in advance!
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
If your node is started before the topic is running, you can create a subscriber and a static boolean in your callback (assuming you're working in C++ and ROS1) :
static bool isFirstTime = true;
static geometry_msgs::Pose firstPose
static void callbackSubscriber(const geometry_msgs::Pose::ConstPtr& msg)
{
if(isFirstTime)
{
isFirstTime = false;
firstPose = msg;
}
}
Disclaimer : I haven't tested, just wrote it off to give a global idea. Not sure this is a "clean" solution too.
Asked: 2020-08-24 08:35:53 -0500
Seen: 485 times
Last updated: May 03 '22
Realsense Camera Performance Degrades Quickly
Multiple problems when configuring MiR200 with ur5 using MoveIt in Gazebo
Get rosparam inside launch file
ROS Melodic OpenCV xfeatures2d
How do you set namespace in a Python program?
roslaunch command is not running
error getMD5Sum in customized message type
Starting
rosbag record
before starting the node that publishes the required ROS message, might be a way to do it.@fun01 You may also want to check WaitForMessage that will wait for a single message to arrive on a topic. Another possible solution is to have a subscriber and in the callback unsubscribe after the first call.