Installation

Requirements

ARIAC 2024 is built for ROS2 Iron running on Ubuntu 22.04 (Jammy Jellyfish).

Configuring the ARIAC Environment

  1. Add the ROS Iron setup script to your ~/.bashrc

echo "source /opt/ros/iron/setup.bash" >> ~/.bashrc && source ~/.bashrc
  1. Make a ROS workspace for ARIAC

mkdir -p ~/ariac_ws/src && cd ~/ariac_ws
  1. Clone the ARIAC repository

git clone https://github.com/usnistgov/ARIAC.git src/ARIAC

Note: Always use the ariac2024 branch.

  1. Install rosdep

sudo apt update && sudo apt install python3-rosdep
  1. Initialize rosdep

sudo rosdep init
  1. Update rosdep

rosdep update
  1. Install ARIAC dependencies:

rosdep install --from-paths src -y --ignore-src
  1. Install necessary packages for building with colcon:

sudo apt install python3-colcon-common-extensions python3-pip && pip install setuptools==58.2.0
  1. Build the workspace

colcon build
  1. Add the workspace setup script to your ~/.bashrc

echo "source ~/ariac_ws/install/setup.bash" >> ~/.bashrc && source ~/.bashrc

Starting the Simulation

Default

The following command starts ARIAC with the default configuration:

ros2 launch ariac_gazebo ariac.launch.py

The default trial config is kitting.yaml, located in ARIAC/ariac_gazebo/config/trials/

Note

All trial files must be placed in this folder.

Launch Options

trial_name

To start ARIAC with a different trial configuration, use the following command:

ros2 launch ariac_gazebo ariac.launch.py trial_name:=<trial_file>

Replace <trial_file> with the name of a trial file (without the .yaml extension).

Example: To start ARIAC with assembly.yaml trial file, run the following command:

ros2 launch ariac_gazebo ariac.launch.py trial_name:=assembly

competitor_pkg

Competitors will need to create their own competitor ROS package. To create a new competitor package, see tutorial 1.

Example: To start ARIAC using the sensors.yaml sensor file located in the config directory of my_competitor_pkg, run the following command:

ros2 launch ariac_gazebo ariac.launch.py competitor_pkg:=my_competitor_pkg

sensor_config

Competitors can have multiple sensor configurations. To specify the file use the sensor_config argument.

Example: To start ARIAC using the my_sensors.yaml file located in the config directory of my_competitor_pkg, run the following command:

ros2 launch ariac_gazebo ariac.launch.py competitor_pkg:=my_competitor_pkg sensor_config:=my_sensors

dev_mode

During testing, competitors can enable additional features that will not be available during qualifiers or finals. To enable these features set dev_mode to true.

  • Currently the only additional feature is the ability to spawn advanced logical cameras. More may be added in the future.

Example:

ros2 launch ariac_gazebo ariac.launch.py dev_mode:=true

record_state

This boolean flag controls whether or not gazebo generates a state.log file for the given trial. This is default to false as enabling will cause gazebo to output urdf parsing errors. The errors can be ignored.

Example:

ros2 launch ariac_gazebo ariac.launch.py record_state:=true

Running the NIST Competitor

To help lower the barrier to entry a test competitor package was created by the NIST team. This competitor package is able to perform most of the necessary functions for the competition but is not programmed to handle any of the agility challenges.

  1. Clone the NIST competitor repository

cd ~/ariac_ws && git clone https://github.com/usnistgov/nist_competitor.git src/nist_competitor

Note

The NIST competitor is programmed to only work with advanced logical cameras and is unable to handle any of the agility challenges.

  1. Install any dependencies

rosdep install --from-paths src -y --ignore-src
  1. Build and source the package

colcon build && source install/setup.bash

Option 1: Use the competition.launch.py launch file. This runs the environment, MoveIt, and the competitor node all in the same terminal.

ros2 launch nist_competitor competition.launch.py trial_name:=kitting record_state:=false

The NIST competitor should start the competition and start completing the default kitting order specified in kitting.yaml. After the kitting order is completed and submitted, the NIST competitor will end the competition and a score will be output in terminal. A score log will also be created in the folder ariac_log

Option 2: Use the competitor.launch.py launch file. This runs the environment, MoveIt, and the competitor node in separate terminals. This can be useful for testing to cut down on the number of log messages in each terminal.

Open three terminal windows.

Terminal 1: Launch the environment

ros2 launch ariac_gazebo ariac.launch.py dev_mode:=true trial_name:=kitting competitor_pkg:=nist_competitor

Terminal 2: Launch the move_group node

ros2 launch ariac_moveit_config ariac_robots_moveit.launch.py

Terminal 3: Launch the nist competitor node

ros2 launch nist_competitor competitor.launch.py

Note

The NIST competitor has been tested with kitting.yaml, assembly.yaml, and combined.yaml. There is no guarantee that the NIST competitor will work with other trials.