rosbridge_suite | Server Implementations of the rosbridge v2 Protocol | Robotics library
kandi X-RAY | rosbridge_suite Summary
kandi X-RAY | rosbridge_suite Summary
rosbridge provides a JSON interface to ROS, allowing any client to send JSON to publish or subscribe to ROS topics, call ROS services, and more. rosbridge supports a variety of transport layers, including WebSockets and TCP. For information on the protocol itself, see the [rosbridge protocol specification] ROSBRIDGE_PROTOCOL.md). For full documentation, see [the ROS wiki] This project is released as part of the [Robot Web Tools] effort.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Defragment a fragment
- Handle incoming message
- Deserialize message
- Decode a base64 encoded string
- Subscribe to a client
- Update parameters
- Return a TransitionHandler for this action
- Handle a service advertisement
- Cleanly shutdown the service
- Unadvertise a service
- Publish a message
- Open the connection
- Set a parameter on a node
- Handle a request
- Main thread
- Gets the globals from the node
- Called when a new subscriber is received
- Prewrite a message
- Transition the queue
- Wait for incoming messages
- Unsubscribe from all clients
- Delete a parameter
- Decorator to log exceptions
- Called when a service fails
- Create a service response
- Get services for a given type
rosbridge_suite Key Features
rosbridge_suite Examples and Code Snippets
Community Discussions
Trending Discussions on rosbridge_suite
QUESTION
I'm trying to run a Jupyter notebook. I installed Anaconda 5.3 with the Python 3.7 version. The notebook starts up, but the Kernel fails to run because it's pointing to another version of Tornado that I've installed for some of my ROS projects (output below). How do I ensure the Jupyter kernel is using Tornado installed in the Anaconda path?
...ANSWER
Answered 2019-Apr-15 at 16:39A little late, but answering my own question. PYTHONPATH was set for a bunch of other projects. Since conda doesn't set PYTHONPATH, running
QUESTION
My company is interested in using a stand-alone Service Fabric cluster to manage communications with robots. In our scenario, each robot would host its own rosbridge server, and our Service Fabric application would maintain WebSocket clients to each robot. I envision a stateful service partitioned along device ids which opens connections on startup. It should monitor connection health via heartbeats, pass messages from the robots to some protocol gateway service, and listen to other services for messages to pass to the robots.
I have not seen discussion of this style of external communications in the Service Fabric documentation - I cannot tell if this is because:
- There are no special considerations for managing WebSockets (or any two-way network protocol) this way from Service Fabric. I've seen no discussion of restrictions and see no reason, conceptually, why I can't do this. I originally thought replication would be problematic (duplicate messages?), but since only one replica can be primary at any time this appears to be a non-issue.
- Service Fabric is not well-suited to bi-directional communication with external devices
I would appreciate some guidance on whether this architecture is feasible. If not, discussion on why it won't work will be helpful. General discussion of limitations around bi-directional communication between Service Fabric services and external devices is welcome. I would prefer if we could keep discussion to stand-alone clusters - we have no plans to use Azure services at this time.
...ANSWER
Answered 2018-Jul-16 at 07:21I hope I understood everything right.
About the obstacles:
I think the major issue here is that bi-directional connection can be established between service replica and the robot.
This has two major problems:
- Only primary replica has write access - i.e. only one replica would be able to modify state. This issue hence could be mitigated by creating a separate partition for each robot (but please remember that you can't change partition count after the service was created) or by creating a separate service instance for each robot (this would allow you to dynamically add or remove robots but would require additional logic related to service discoverability).
- The replica can be shutdown (terminated), moved to another node (shutdown and start of new replica) or even demoted (the primary replica get's demoted to secondary and another secondary replica get's promoted to primary) by various reasons. So the service code and robot communication code should be able to handle this.
About WebSockets
This looks possible by implementing custom ICommunicationListener and other things using WebSockets.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install rosbridge_suite
You can use rosbridge_suite like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page