Wiki
Clone wikiariac / 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