[ros-users] Missing messages on startup

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: Mike Purvis
Date:  
To: ros-users
Subject: [ros-users] Missing messages on startup
Hey everyone,

I'm experiencing a curious issue with regards to a node which sends a
message on startup. The following works:

pub = rospy.Publisher("/clearpath/announce", Announce, latch=False)
rospy.init_node('controller')
pub.publish(action="rollcall")

However, if I initialize the node first before setting up the publisher, the
message send silently fails. No error, but the message never arrives, and
rostopic shows no activity:

rospy.init_node('controller')
pub = rospy.Publisher("/clearpath/announce", Announce, latch=False)
pub.publish(action="rollcall")

But, when I insert some delays, it works again!

rospy.init_node('controller')
rospy.sleep(0.5)
pub = rospy.Publisher("/clearpath/announce", Announce, latch=False)
rospy.sleep(0.5)
pub.publish(action="rollcall")

I assume that there's some initialization going on in a background thread;
is this a known/documented behavious? Is there some better way to handle it
than just these delays?

Thanks,

Mike Purvis