ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I had the right idea and found out where I was wrong. The "master" is really the robot, which seems a little backward to me but now that I know that roscore
needs to run on the robot I'm set straight. Here's the article that put me on the right track:
Getting RVIZ to Work Over Multiple Computers
And in case the link ever dies, here's the content of the link since it's short:
README on getting RVIS to work over
multiple computers
A common task is to SSH into the robot's computer and run RVIZ to get the laser output and other visualization. Running RVIZ directly on the remote computer will not work due to the way RVIZ is implemented. The workaround is to run RVIZ locally. To do this we need to set the local computer to locate the remote MASTER NODE in order to display the right information.
Assume: IP: 192.168.1.0 // remote computer (robot) IP: 192.168.1.1 // local computer (host)
* ssh into remote computer * 1. ssh -X erratic@192.168.1.0
At the remote terminal: 2. export ROS_MASTER_URI=http://192.168.1.0:11311 //this ensures that we do not use localhost, but the real IP address as master node
export ROS_IP=192.168.1.0 //this ensures that ROS knows that we cannot use hostname directly (due to DHCP firewall issues)
roscore
At the local terminal: 1. export ROS_MASTER_URI=http://192.168.1.0:11311 //tells local computer to look for the remote here
export ROS_IP=192.168.1.1 //this ensures that ROS knows that we cannot use hostname directly (due to DHCP firewall issues)
rosrun rviz rviz // fires up rviz on local computer. It will attach to the master node of the remote computer
* to check, open a remote terminal * 1. rxgraph
** Note, everytime a new terminal is open on the local/remote computer, we have to call the 2 exports commands. To make this permanent, edit the ~/.bashrc file: 1. sudo gedit ~/.bashrc //add the two export commands at the end of the file.
- source ~/.bashrc //and restart terminal
2 | No.2 Revision |
* EDIT *
I didn't have all my facts and figures straight before writing this answer. The fact is that it doesn't matter where the master is or where the camera is. Once your settings correspond correctly then everything should work. Make sure the following two items are addressed on ALL machines.
ROS_MASTER_URI
- IP of the machine to act as the "server", needs be the same on all machinesROS_IP
- the IP of the current machine, needs to be different on all machines--- Original Answer Below ---
I had the right idea and found out where I was wrong. The "master" is really the robot, which seems a little backward to me but now that I know that roscore
needs to run on the robot I'm set straight. Here's the article that put me on the right track:
Getting RVIZ to Work Over Multiple Computers
And in case the link ever dies, here's the content of the link since it's short:
README on getting RVIS to work over
multiple computers
A common task is to SSH into the robot's computer and run RVIZ to get the laser output and other visualization. Running RVIZ directly on the remote computer will not work due to the way RVIZ is implemented. The workaround is to run RVIZ locally. To do this we need to set the local computer to locate the remote MASTER NODE in order to display the right information.
Assume: IP: 192.168.1.0 // remote computer (robot) IP: 192.168.1.1 // local computer (host)
* ssh into remote computer * 1. ssh -X erratic@192.168.1.0
At the remote terminal: 2. export ROS_MASTER_URI=http://192.168.1.0:11311 //this ensures that we do not use localhost, but the real IP address as master node
export ROS_IP=192.168.1.0 //this ensures that ROS knows that we cannot use hostname directly (due to DHCP firewall issues)
roscore
At the local terminal: 1. export ROS_MASTER_URI=http://192.168.1.0:11311 //tells local computer to look for the remote here
export ROS_IP=192.168.1.1 //this ensures that ROS knows that we cannot use hostname directly (due to DHCP firewall issues)
rosrun rviz rviz // fires up rviz on local computer. It will attach to the master node of the remote computer
* to check, open a remote terminal * 1. rxgraph
** Note, everytime a new terminal is open on the local/remote computer, we have to call the 2 exports commands. To make this permanent, edit the ~/.bashrc file: 1. sudo gedit ~/.bashrc //add the two export commands at the end of the file.
- source ~/.bashrc //and restart terminal