Wiki

Clone wiki

ihmc_ros / configuration_files / network-config

IHMCNetworkParameters File

In the configurations directory of many packages you will find the IHMCNetworkParameters.ini file. The fields in this file default to localhost, which should suffice for simulation, but all of the components in the IHMC software stack require this file so that they know about each other's IP addresses. This file can and should be modified for different networking configurations.

  • rosURI corresponds to the ROS_MASTER_URI environment variable, without the http:// directive. You can change the hostname and port to match what you use as your ROS_MASTER_URI here. Shell expansion is not available in this file so you will have to type the hostname.
  • robotController corresponds to the host/IP of the computer running the IHMC Whole-Body Control algorithm. In Sim, this is localhost. If you're using ihmc_ros with a real robot, this may not be the case.
  • logger defines the interface over which our logging and remote visualization protocol goes over; this is used for logging and visualization tools, such as the Remote Atlas Visualizer

If you don't want to use the default location for the .ini file, you can use the roslaunch arg "ihmc_network_file" to specify a different file, e.g. roslaunch ihmc_sim ihmc_sim.launch ihmc_network_file:=$HOME/OurTeamNetworkFile.ini

Using the Logger and Remote Atlas Visualizer

Both logging and visualization go over the same interface. Configuration for this can be a little tricky.

Logging should run on a dedicated machine with a lot of disk space; the logs are quite large as they capture all of the Atlas control data in addition to all of the variables running in the IHMC Control Algorithm.

Configuring the Visualizer

Unlike most of the IHMC nodes, the Visualizer doesn't use a .ini file for network configuration; it simply looks for a special announcement message on all of its interfaces. As such, the only requirement for using the Visualizer is that it is on the same subnet as the machine running the IHMC Controller node and they can reach each other over the network.

Configuring the Controller

The logger field in the .ini file for the Controller node is used to tell it over which interface it should send out its data stream. This can be used in many ways.

For Competition/Limited Bandwidth

During the DRC Competition, Visualization and off-board logging are not possible as they both require very high bandwidth. You can configure one of the on-board computers to be a log target if it's not doing anything else, but there is no way to access the Remote Visualizer. In this case, you should specify in the .ini the IP address of the on-board computer you wish to use; we recommend using one of the internal direct links rather than one of the links that goes through the switch, just to be safe. If you do not wish to log at all during a "competition" run, you can set the logger field to "localhost" to make sure that no packets go over a bandwidth limited line

Configuring a Controller with Visualization but no Logging

If you do not want to log controller data but you still want to use the Visualizer, you will still need to specify an interface in the .ini used by the controller node. In this case, you will need to make sure the logger field points to a network interface that is on the same subnet as, and is reachable by, the computer that you will run the Visualizer on. You can also accomplish this by pointing to any arbitrary IP address that would force the controller node to use the network card you would like it to use; this may sound odd but it is useful when you want to use our Logging software but can't guarantee that the logging machine is up and running (more on that later)

Configuring a Controller with Visualization and Logging

In this particular situation, the machine running the logging software will have its own .ini file as well. In this particular case, the logger field should point to network interface on the logging machine that you would like for the logger to listen on. The Controller node, in turn, should point directly at the same IP address. As long as the Visualizer, Logger, and Controller share a subnet and can reach each other, this configuration will never have to change.

Updated