Skip to content

plugging

Balázs András Bálint edited this page Apr 17, 2023 · 8 revisions

HOME > TECHNICAL INFO: PLUGGING

Short Description

Object Information

The sections below list the objects and their attached sensors and attributes.

Properties

Properties can be found in the rosparam server under the depicted name. To get the full path, run rosparam list | grep PROPERTY_NAME while the simulation runs.

Sensors

Sensor topics can be listened to from the command line by running rostopic echo /PATH/TO/SENSOR, e.g., rostopic echo /plug_pos. Each sensor publishes a second topic without noise if testing mode is active. These topics can be reached by simply appending the _GT suffix to the topic path.

Note: The higher you choose the difficulty level, the less information you are provided with and the noisier the sensors get.

Difficulty levels

There are 4 levels of difficulty for the plugging task:

Difficulty 1 (baseline)

Cylindrical plug geometry
Slight overall sensor noise
No offset perturbation to the frame's pose 
Hight friction gripper fingers

Difficulty 2 (localization)

Varying plug geometry
Realistic overall sensor noise
Offset perturbation to the frame's pose
Hight friction gripper fingers

Difficulty 3 (slippage)

Varying plug geometry
Realistic overall sensor noise
No offset perturbation to the frame's pose
Medium friction gripper fingers

Difficulty 4 (combined)

Varying plug geometry
Realistic overall sensor noise
Offset perturbation to the frame's pose
Medium friction gripper fingers

Plug

The following images display the dimensions of the different plug geometries. In the simulated scene, the plug's position and orientation are available via the /plug_pos and /plug_quat rostopics. The values streamed correspond to the position and orientation of the frame attached to the plug at its bottom middle point (see pictures). For the axes and the orientation of this frame, see the section on the fixtures -- when assembled, the plug's 6D pose should be the same as that of the fixture.

The actual meshes are available from the /home/assembly_server/share/assembly_demo/assets/meshes/plugging/collision directory in the challenge docker image. The meshes are split into convex sub-meshes due to the simulator's collision-checking algorithm; the parts that belong together follow the naming convention 2023_icra_challenge_<GEOMETRY TYPE>_plug_<NUM>.STL, where <GEOMETRY TYPE> is either cylindrical, cuboid or triangular, and <NUM> is the integer ID of the sub-mesh. The sub-meshes were exported with the same origin, so re-composing them should be possible by only importing them into the same project/environment (e.g. via Blender).

Fixture

The following images display the dimensions of the different fixture geometries. In the simulated scene, the fixture's (perturbed/offset) position and orientation are available via the /fixture_pos and /fixture_quat rostopics. In training mode, the actual position and orientation are available via the /goal_pos and goal_quat rostopics. The values streamed correspond to the position and orientation of the frame that is attached to the fixture at its bottom middle point (see pictures). The axis z of this frame is the direction of the plug insertion and points bottom-up, and the axis x is parallel to the longest dimension of the fixture.

The actual meshes are available from the /home/assembly_server/share/assembly_demo/assets/meshes/plugging/collision directory in the challenge docker image. The meshes are split into convex sub-meshes due to the simulator's collision-checking algorithm; the parts that belong together follow the naming convention 2023_icra_challenge_<GEOMETRY TYPE>_<ID>.STL, where <GEOMETRY TYPE> is either cylindrical, cuboid or triangular, and <ID> is either an integer ID for the sub-mesh or an ID in the form of 3_<NUM> in the case of the cylindrical fixture. The sub-meshes were exported with the same origin, so re-composing them should be possible by only importing them into the same project/environment (e.g. via Blender).

Scoring

For the scoring, the sub-tasks are weighted as shown in the following table:

sub-task weight $w_s$
Pick up the plug 10
Localize the frame 35
Align the plug into the frame 35
Click-insert the plug 20

Each sub-task must be completed within 30 seconds; otherwise, the whole run will be terminated prematurely during evaluation.

The task will be evaluated for a fixed number of iterations on each difficulty level. Initial poses of objects will be randomized across iterations but identical for all participants. The total score is aggregated as the weighted sum of all successfully completed sub-tasks over all iterations, as shown in the following equation,

$$ \text{score} = \sum_{d \in D} \sum_{s \in S} w_{s} \cdot P(d,s), $$

where $D$ is the set of difficulty levels, $S$ is the set of sub tasks, $w_s$ is the weight of sub task $s$ as indicated above, and $P(d,s)$ is the success rate of sub task $s$ on difficulty level $d$.

In the case of ties, we break them by dividing the scores by the sum of the weighted time the solutions took to achieve them, i.e.,

$$ \text{tiebreak score} = \frac{\text{score}}{\sum_{d \in D} \sum_{s \in S} w_s \cdot T(d,s)}, $$

where $T(d,s)$ denotes the mean required time to solve sub task $s$ on difficulty level $d$. All other expressions are identical to the ones in the equation for score calculation.

Sub-task completion conditions

Pick up the plug

Both gripper fingers are in contact with the plug.

Localize the frame

Either one of the gripper fingers or the plug is in contact with the frame.

Align the plug into the frame

The plug's bottom middle point is

  • within 0.002 meters (2 millimetres) of the fixture's middle point (hole) along the axes x and y and
  • is up to 0.052 meters (52 millimetres) above the fixture's bottom middle point.

Click-insert the plug

The plug's bottom middle point is within 0.002 meters (2 millimetres) of the fixture's bottom middle point along all axes.