How do I connect the subscriber inside a service server in ROS? as both needs to be defined in separate functions ?
That should not be a problem. Just define the subscriber within the service server code and write a callback function for it. When the service server starts, the subscriber will also activate.
How you wire your logic exactly depends on what you want to do.
I can activate the subscriber within the service code but in regarding the data in the subscriber callback function? how do I use it in the service response function? is there any other way than using classes? thanks for your help
Hi @mkakram ,
You can declare the variable that will receive the subscriber data outside the function scope and use it as a global one inside both the subscriber callback and service function:
Something more or less like below:
callback_value = None def callback(msg): global callback_value callback_value = msg ... def service_fn(): global callback_value ...
I have a more complex example using globals in this repository: Bitbucket
I show in this video the development of such algorithm: [Exploring ROS using a 2 Wheeled Robot] #6: Motion Planning Algorithms - YouTube