Skip to content

Commit da1e885

Browse files
authored
Mir-bridge-ready-service with standard-srv-library (#12)
* Added mir_ready service as a workaround for lifecycle nodes (pythoN)
1 parent 83b8274 commit da1e885

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

mir_driver/mir_driver/mir_bridge.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from nav_msgs.msg import Odometry
1717
from sensor_msgs.msg import LaserScan
1818
from tf2_msgs.msg import TFMessage
19+
from std_srvs.srv import Trigger
1920

2021
tf_prefix = ''
2122

@@ -364,6 +365,10 @@ def callback(self, msg):
364365
class 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

443458
def main(args=None):
@@ -447,5 +462,6 @@ def main(args=None):
447462
rclpy.shutdown()
448463

449464

465+
450466
if __name__ == '__main__':
451467
main()

0 commit comments

Comments
 (0)