1616from nav_msgs .msg import Odometry
1717from sensor_msgs .msg import LaserScan
1818from tf2_msgs .msg import TFMessage
19+ from std_srvs .srv import Trigger
1920
2021tf_prefix = ''
2122
@@ -364,6 +365,10 @@ def callback(self, msg):
364365class MiR100BridgeNode (Node ):
365366 def __init__ (self ):
366367 super ().__init__ ('mir_bridge' )
368+
369+ self .mir_bridge_ready = False #state
370+ self .srv_mir_ready = self .create_service (Trigger , 'mir_bridge_ready' , self .mir_bridge_ready_poll_callback )
371+
367372 try :
368373 hostname = self .declare_parameter ('hostname' , '192.168.12.20' ).value
369374 except KeyError :
@@ -409,6 +414,9 @@ def __init__(self):
409414 if ('/' + sub_topic .topic ) not in subscribed_topics :
410415 self .get_logger ().warn (
411416 "Topic '%s' is not yet subscribed to by the MiR!" % sub_topic .topic )
417+
418+ self .mir_bridge_ready = True
419+
412420
413421 def get_topics (self ):
414422 srv_response = self .robot .callService ('/rosapi/topics' , msg = {})
@@ -438,6 +446,13 @@ def get_topics(self):
438446 print ((' * %s [%s]' % (topic_name , topic_type )))
439447
440448 return topics
449+
450+ def mir_bridge_ready_poll_callback (self , request , response ):
451+ self .get_logger ().info ('Checked for readiness' )
452+ response .success = self .mir_bridge_ready
453+ response .message = ""
454+ return response
455+
441456
442457
443458def main (args = None ):
@@ -447,5 +462,6 @@ def main(args=None):
447462 rclpy .shutdown ()
448463
449464
465+
450466if __name__ == '__main__' :
451467 main ()
0 commit comments