Installation
Requirements
ARIAC 2024 is built for ROS2 Iron running on Ubuntu 22.04 (Jammy Jellyfish).
See the ROS Iron installation instructions for more information.
Install
ros-iron-desktop
using the Debian binaries.
Configuring the ARIAC Environment
Add the ROS Iron setup script to your
~/.bashrc
echo "source /opt/ros/iron/setup.bash" >> ~/.bashrc && source ~/.bashrc
Make a ROS workspace for ARIAC
mkdir -p ~/ariac_ws/src && cd ~/ariac_ws
Clone the ARIAC repository
git clone https://github.com/usnistgov/ARIAC.git src/ARIACNote: Always use the
ariac2024
branch.
Install rosdep
sudo apt update && sudo apt install python3-rosdep
Initialize rosdep
sudo rosdep init
Update rosdep
rosdep update
Install ARIAC dependencies:
rosdep install --from-paths src -y --ignore-src
Install necessary packages for building with colcon:
sudo apt install python3-colcon-common-extensions python3-pip && pip install setuptools==58.2.0
Build the workspace
colcon build
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.pyThe default trial config is
kitting.yaml
, located inARIAC/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 theconfig
directory ofmy_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 theconfig
directory ofmy_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
totrue
.
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 tofalse
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.
Clone the NIST competitor repository
cd ~/ariac_ws && git clone https://github.com/usnistgov/nist_competitor.git src/nist_competitorNote
The NIST competitor is programmed to only work with advanced logical cameras and is unable to handle any of the agility challenges.
Install any dependencies
rosdep install --from-paths src -y --ignore-src
Build and source the package
colcon build && source install/setup.bashOption 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:=falseThe 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 folderariac_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_competitorTerminal 2: Launch the move_group node
ros2 launch ariac_moveit_config ariac_robots_moveit.launch.pyTerminal 3: Launch the nist competitor node
ros2 launch nist_competitor competitor.launch.pyNote
The NIST competitor has been tested with
kitting.yaml
,assembly.yaml
, andcombined.yaml
. There is no guarantee that the NIST competitor will work with other trials.