Wiki

Clone wiki

ariac / 2019 / competition_interface_documentation

ARIAC Interface

GEAR provides a ROS interface to the teams participating in ARIAC. This interface can be used by teams to control all available actuators, read sensor information and send/receive notifications.

During the competition, it is against the rules to control the ARIAC simulation using anything other than the interface specified below. Teams are not permitted to use any of the topics or services in the /gazebo/ namespace prefix to control the Gazebo simulation or get information about the simulation state. These interfaces will be blocked during the Finals.

Comming soon: hands-on tutorial on interfacing with GEAR through command line tools

Comming soon: tutorial on interfacing with GEAR through a ROS node

Sensors

Topic name Message/Service Description Message definition
/ariac/{name} Message Break beam's output osrf_gear/Proximity.msg
/ariac/{name}_change Message Break beam's output (output changes only) osrf_gear/Proximity.msg
/ariac/{name} Message Proximity sensor's output sensor_msgs/Range.msg
/ariac/{name} Message Laser profiler's output sensor_msgs/LaserScan.msg
/ariac/{name} Message Depth camera's output sensor_msgs/PointCloud.msg
/ariac/{name} Message Logical camera's output osrf_gear/LogicalCameraImage.msg

Note: The string {name} is replaced with the name you give the sensor in the config file. See: https://bitbucket.org/osrf/ariac/wiki/2019/configuration_spec Since the sensor names are unique, it ensures that all sensors publish data to unique topics.

TF frames

TF frames for static key points of the workcell are published by the ARIAC simulation. Dynamic TF frames for the arm and faulty products are also published by the simulation. Other dynamic TF frames can be accessed through logical cameras.

The following frames are published on the global /tf and /tf_static topics.

Description TF frame Type
Origin of the workcell world static
Each sensor {sensor_name}_frame, e.g. logical_camera_1_frame static
Bin storage units bin{N}_frame, where N=1..6 static
Arm links arm{N}_{link_name}, where N=1..2 e.g. arm1_wrist1_link dynamic
Products detected by logical cameras {logical_camera_name}_{product_name}_frame, e.g. logical_camera_1_piston_rod_part_1_frame dynamic
Products detected by quality control sensors quality_control_sensor_{N}_{anonymize_mode_name}_frame, where N=1..2, e.g. quality_control_sensor_1_model_1_frame dynamic
Trays where products are placed kit_tray_{N}, where N=1..2, e.g. kit_tray_1 dynamic

Additionally arm TF frames without the arm{N}_ prefix are published on topics in the arm namespace.

  • /ariac/arm{N}/tf where N=1..2
  • /ariac/arm{N}/tf_static where N=1..2
Description TF frame Type
Origin of the workcell world static
Arm links {link_name}, e.g. wrist1_link dynamic

Actuators

Topic name Message/Service Description Message definition
/ariac/arm{N}/arm/command Message Command arm to move trajectory_msgs/JointTrajectory.msg
/ariac/arm{N}/joint_states Message Arm joint states sensor_msgs/JointState
/ariac/arm{N}/arm/state Message Arm Controller's state control_msgs/JointTrajectoryControllerState.msg
/ariac/conveyor/state Topic Conveyor belt's state osrf_gear/ConveyorBeltState.msg
/ariac/arm{N}/gripper/control Service Enable/disable gripper's suction osrf_gear/VacuumGripperControl.srv
/ariac/arm{N}/gripper/state Message Gripper's state osrf_gear/VacuumGripperState.msg

Process management

Topic name Message/Service Description Message definition
/clock Message Simulation time rosgraph_msgs/Clock.msg
/ariac/start_competition Service Start the competition std_srvs/Trigger.srv
/ariac/end_competition Service End the competition early std_srvs/Trigger.srv
/ariac/competition_state Message State of the competition (init, ready, go, end_game, done) std_msgs/String.msg
/ariac/orders Message New order to be completed osrf_gear/Order.msg
/ariac/quality_control_sensor_{N} Message Output of quality control sensor {N} (N=1,2), model names anonymized osrf_gear/LogicalCameraImage.msg
/ariac/agv{N} Service Notify AGV{N} that the kit is ready (N=1,2) osrf_gear/AGVControl.srv
/ariac/agv{N}/state Message State of AGV {N} (N=1,2) std_msgs/String.msg

Cheats

These are only provided for debugging/development purposes and their use is not permitted during the competition trials. See the developer tips page for how to enable cheats.

Topic name Message/Service Description Message definition
/ariac/current_score Topic Current completion score std_msgs/Float32.msg
/ariac/trays Message State of the kit being built on each tray osrf_gear/TrayContents.msg
/ariac/material_locations Service Query storage locations for a material (e.g. disk_part, pulley_part) osrf_gear/GetMaterialLocations.srv
/ariac/conveyor/control Service Modify power of the conveyor belt osrf_gear/ConveyorBeltControl.srv
/ariac/submit_shipment Service Submit a tray for evaluation without the AGV moving osrf_gear/SubmitShipment.srv
/ariac/kit_tray_{N}/clear_tray Service Clear the contents of tray {N} without the AGV moving std_srvs/Trigger.srv

Updated