ROS1+Robot Platform

This platform can be selected via --platform=platform.ros1robot.

This is the platform on which SIERRA will run experiments using ROS1 on a real robot of your choice. To use this platform, you must setup the SIERRA ROSBridge. This is a generic platform meant to work with most real robots which ROS1 supports, and as a starting point to derive more specific platform configuration for a given robot (if needed). For all execution environments using this platform (see Real Robot Execution Environment Plugins for examples), SIERRA will run experiments spread across multiple robots using GNU parallel.

SIERRA designates the host machine as the ROS master, and allows you to (optionally) specify configuration for running one or more nodes on it in the --template-input-file to gather data from robots (see below). This is helpful in some situations (e.g., simple robots which can’t manage network mounted filesystems).

Environment Variables

This platform ignores SIERRA_ARCH.

Random Seeding For Reproducibility

ROS do not provide a random number generator manager, but SIERRA provides random seeds to each Experimental Run which Project code should use to manage random number generation, if needed, to maximize reproducability. See Template Input Files and Experimental Definition Requirements for details on the format of the provided seed. By default SIERRA does not overwrite its generated random seeds for each experiment once generated; you can override with --no-preserve-seeds.

Real Robot Considerations

SIERRA makes the following assumptions about the robots it is allocated each invocation:

  • No robots will die/run out of battery during an Experimental Run.

  • Password-less ssh is setup to each robot SIERRA is handed to use (can be as a different user than the one which is invoking SIERRA on the host machine).

  • The robots have static IP addresses, or are always allocated an IP from a known set so you can pass the set of IPs to SIERRA to use. This set of IP address/hostnames can be explicitly passed to SIERRA via cmdline (see Command Line Interface) or implicitly passed via SIERRA_NODEFILE.

  • The ROS environment is setup either in the .bashrc for the robot login user, or the necessary bits are in a script which SIERRA sources on login to each robot (this is a configuration parameter–see Main Configuration).

  • ROS does not provide a way to say “Run this experiment for X seconds”, so SIERRA inserts its own timekeeper node into each robot which will exit after X seconds and take the roslaunch process with it on each robot and/or the master node.

See also ROS1+Robot Platform.