Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details], #31

Open
ENGINEERDK opened this issue Feb 4, 2020 · 2 comments

Comments

@ENGINEERDK
Copy link

Hi all,

I am running with Melodic, and whenever I run full navigation stack, getting errors-
call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details],
call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_params],

But when I run only few nodes like teleop and laser, The communication happens properly with no error.

Please help me resolve the issue.

Output terminal-
`ROS_MASTER_URI=http://localhost:11311

setting /run_id to 3297cf20-474a-11ea-a1a5-00044be6ab59
process[rosout-1]: started with pid [6596]
started core service [/rosout]
process[rosbridge_websocket-2]: started with pid [6615]
process[rosapi-3]: started with pid [6616]
2020-02-04 18:01:03+0530 [-] Log opened.
2020-02-04 18:01:04+0530 [-] registered capabilities (classes):
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.call_service.CallService
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.advertise.Advertise
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.publish.Publish
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.subscribe.Subscribe
2020-02-04 18:01:04+0530 [-] - <class 'rosbridge_library.capabilities.defragmentation.Defragment'>
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.advertise_service.AdvertiseService
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.service_response.ServiceResponse
2020-02-04 18:01:04+0530 [-] - rosbridge_library.capabilities.unadvertise_service.UnadvertiseService
2020-02-04 18:01:04+0530 [-] WebSocketServerFactory starting on 9090
2020-02-04 18:01:04+0530 [-] Starting factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0x7f8a66fb10>
2020-02-04 18:01:04+0530 [-] [INFO] [1580819464.356033]: Rosbridge WebSocket server started at ws://0.0.0.0:9090
2020-02-04 18:01:04+0530 [-] [INFO] [1580819464.800441]: Client connected. 1 clients total.
2020-02-04 18:01:04+0530 [-] [INFO] [1580819464.807886]: Client disconnected. 0 clients total.
2020-02-04 18:01:04+0530 [-] [INFO] [1580819464.888590]: Client connected. 1 clients total.
2020-02-04 18:01:06+0530 [-] [INFO] [1580819466.085559]: [Client 1] Subscribed to /rosout
2020-02-04 18:01:10+0530 [-] [INFO] [1580819470.185621]: [Client 1] Subscribed to /rosout
2020-02-04 18:01:55+0530 [-] [INFO] [1580819515.527915]: [Client 1] Subscribed to /rosout
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.650998]: [Client 1] [id: call_service:/rosapi/node_details:268] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.656324]: [Client 1] [id: call_service:/rosapi/node_details:270] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.660804]: [Client 1] [id: call_service:/rosapi/node_details:269] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.721723]: [Client 1] [id: call_service:/rosapi/get_param:273] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.819669]: [Client 1] [id: call_service:/rosapi/get_param:286] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.835576]: [Client 1] [id: call_service:/rosapi/get_param:289] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.843575]: [Client 1] [id: call_service:/rosapi/get_param:287] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.857521]: [Client 1] [id: call_service:/rosapi/get_param:288] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]
2020-02-04 18:02:00+0530 [-] [ERROR] [1580819520.860114]: [Client 1] [id: call_service:/rosapi/get_param:290] call_service ROSServiceIOException: Unable to communicate with service [/rosapi/get_param], address [rosrpc://192.168.0.101:36005]

`

call_service ROSServiceIOException: Unable to communicate with service [/rosapi/node_details]

@mikem419
Copy link

mikem419 commented Apr 23, 2020

Does anyone else have any feedback on this? I have uninstalled python-twisted, tornado and bson and re-installed the rosbridge_suite with no success.

I do not have this problem when I run in advanced mode. I am able to see all topics/services/params, but it is far too cluttered. As a test, I changed one topic to upper case and turned off advanced mode. When I do that, I get the error mentioned above.

@newten82
Copy link

Although this error is specifically caused by getNodes function in dashboad.ts, this problem is with getNodes, getServices, getParams, and getTopics all call rxjs Observable.forkJoin. This essentially bundles up all the services, parameters, topics, nodes observable's in getData and requests them all from the rosbridge_server in parallel when the observable subscribe is called in getData. So If you have more then 40 items or so it tends to overwhelm rosbridge_server.

The easiest solution is to set "topics_glob", "services_glob", "params_glob" parameters in the rosbridge launch file to limit what you expose to ros-control-center. By default these parameters are set to expose everything. Unfortunately you can't filter nodes so the getNodes may still fail if you have too many other topics, services, or parameters exposed.

The more robust solution is call the rxjs observable's in sequence or bundles. This will prevent the rosbridge_server from being overwhelmed.

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

No branches or pull requests

3 participants