rosbridge websocket server over internet
I am working on a project where I need to send and receive data remotely from a website to the robot. I've read and implemented rosbridge_server on my localhost but want to run the server online on the internet, so that it is accessible anywhere. What is a good solution/implementation for the same?
I referred to this question, but I think this is only a workaround and not a good solution. Not sure why ssh -R tunneling is required.
Not sure I completely understand your question. You want to run rosbridge on a remote internet connected machine, or you want to simply have internet access to the rosbridge server on your local machine?
If the later, it is not complicated to get rosbridge running so a browser can connect over internet to your robot/ROS system.
What I want is the robot to send odometry and map data to a user located anywhere in the world via internet. Right now I'm converting ros messages to JSON and have written my own python websocket client which connects to a websocket server, and displays it on the webpage. But I was wondering if rosbridge_suite can be used instead?
Yes. Rosbridge can be used for that. I have posted code before that I have used. Although not tested outside of USA. I have had issues with a particular ISP(AT&T) seemingly block access from residential access in multiple states while it works fine on AT&T connected cell phones. Not sure why.
https://answers.ros.org/question/3150...
My bot won't have a static public IP, so I won't be able to start a server out of my bot. I'll need the server to be somewhere else, with the robot having a script for websocket client. But not sure how to use that with rosbridge_suite. So my robot will be connected to the internet via wifi, and the websocket server will be on xyz.com let's say, and I want to be able send robot data to user via xyz.com. Can you please help me understand how can I do that?
Ah, sorry. Can't help with that setup. I'm not a SW guy and just do this robot stuff for learning.
I have had mine setup to update a webpage at a static address with an updated link when the IP address of the robot changed. So to get to robot you go to XYZ.com/robot.html and click on the link that takes you to the robot IP address. XYZ.com/robot.html gets updated via FTP whenever the robot IP address changes. But that's just how I did it. It's a little janky and probably not workable for you.
I have this same question.
So... the rosbridge on the robot have to send data to "the cloud" and your browser will read the data connecting to that cloud server, right?