It is generally controller by ROS_MASTER_URI and ROS_IP/ROS_HOSTNAME variables. You can read more about them here:
I don’t recommend running the Master on your computer, as it will require your Rover to connect with it before starting any nodes and a simple connection loss may disturb the internal communication between nodes on Raspberry Pi. The only exception I can think of is a multi-robot environment.
On Raspberry Pi, these variables are set in
/etc/ros/setup.bash file and I recommend leaving them as they are. In the default configuration, Raspberry Pi starts the roscore (ROS Master).
Assuming your computer is connected to the Leo Rover’s WiFi AP, your wireless interface should get an IP from the
10.0.0.0/24 subnet. Let’s take for example 10.0.0.80. On your computer, you should set:
On other network setups, this might require more configuration. The general rule is that ROS_MASTER_URI must be resolvable by your computer, The ROS_IP/ROS_HOSTNAME must be resolvable by all other computers on the ROS network. Please also check:
It’s hard to clearly answer this question. What I often do to check communication with the Master is to request a list of topics from it:
Then try to echo some topic to check if I can communicate with the nodes running on another computer, for example:
rostopic echo /joint_states
There is also the
roswtf that sometimes help to find common network problems.