Skip to content

Conversation

oleg-alexandrov
Copy link
Contributor

This is a continuation of #374.

In ROS Melodic, launching a node to start a rosservice enabling localization fails, unless the node which starts in parallel playing the bag is already fully running. The error in that case is: "rospy.exceptions.ROSInitException: time is not initialized. Have you called init_node()?"

As I see it, playing the bag sets up a ROS node which then rosservice can talk to, and until that is done rosservice won't work, even when '--wait' is used with that rosservice. And playing a bag can take quite some time, if the bag is big.

The fix I came up with is to put the call to the rosservice in a shell script, and within that script try this repeatedly till it succeeds. I tested this very thoroughly and it works. There could be more elegant approaches out there, but for now maybe this may do.

@bcoltin bcoltin merged commit d859eba into nasa:develop Jan 4, 2022
@oleg-alexandrov oleg-alexandrov deleted the localization_fix branch January 4, 2022 18:29
luisa-mao pushed a commit to luisa-mao/astrobee-1 that referenced this pull request Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants