Files
lightweight-cobot/src/iiwa_experement/config/scenes.yaml
T
Даниил Грабарь a6c6474db9 feat(experement): simulate tightening and smooth tool transfers
Add a torque-tool tightening simulation for experiments 14-20: the tool approaches each empty hole, twists 60 degrees (reversing at the wrist limit), returns and retracts while the screw stays handed off. Lift attached tools vertically clear of the magazine before lateral motion, prefer the close 'work' pose between operations, and reconfigure through home only when planning fails. Settle measured joint positions before verifying joint moves.
2026-11-08 21:46:01 +10:00

198 lines
5.1 KiB
YAML

# Machine-readable source for the twenty grant experiments.
#
# Units are metres and degrees in the Webots world frame. The robot is spawned
# by iiwa_bringup at (-0.25, 0, 0.79). The tabletop is at Z = 0.793.
#
# The shared poses below are copied from doc/experiment-scenes.md. Experiments
# only list the objects they add and the poses that differ. No value is chosen
# at run time. `patron` is part of the robot URDF in every experiment and is
# therefore not listed as a scene object.
schema_version: 1
poses:
fixture:
x: 0.30
y: 0.12
z: 0.803
yaw_deg: 45
body:
x: 0.30
y: 0.12
z: 0.823
yaw_deg: 45
rack:
x: 0.12
y: -0.42
z: 0.793
yaw_deg: 0
tray:
# Left/front edge of the reachable workspace, clear of the tool rack and
# the fixture. Moving the whole tray also moves its ten screws.
x: 0.20
y: 0.46
z: 0.793
yaw_deg: 0
cap_free:
x: 0.35
y: -0.22
z: 0.790667
yaw_deg: 45
cap_installed:
x: 0.30
y: 0.12
z: 0.82594
yaw_deg: 45
tools:
vacuum:
x: 0.255
y: -0.42
z: 0.803
yaw_deg: 0
magnetic_tool:
x: 0.165
y: -0.42
z: 0.803
yaw_deg: 0
sealant_tool:
x: 0.075
y: -0.42
z: 0.803
yaw_deg: 0
torque_tool:
x: -0.015
y: -0.42
z: 0.803
yaw_deg: 0
# Screw offsets are relative to the tray centre. The order is the screw_1 ...
# screw_10 order from doc/experiment-scenes.md; only the first four are at the
# grid corners. All screws rest with their lower point at Z = 0.7954.
screws:
z: 0.7954
layout:
- {name: screw_1, dx: -0.040, dy: -0.015}
- {name: screw_2, dx: 0.040, dy: -0.015}
- {name: screw_3, dx: -0.040, dy: 0.015}
- {name: screw_4, dx: 0.040, dy: 0.015}
- {name: screw_5, dx: -0.020, dy: -0.015}
- {name: screw_6, dx: 0.000, dy: -0.015}
- {name: screw_7, dx: 0.020, dy: -0.015}
- {name: screw_8, dx: -0.020, dy: 0.015}
- {name: screw_9, dx: 0.000, dy: 0.015}
- {name: screw_10, dx: 0.020, dy: 0.015}
experiments:
"1":
cap: free
tools: [vacuum]
"2":
cap: free
cap_pose: {x: 0.35, y: -0.22, z: 0.790667, yaw_deg: 135}
tools: [vacuum]
"3":
fixture: {x: 0.29, y: 0.14, z: 0.803, yaw_deg: 45}
body: {x: 0.29, y: 0.14, z: 0.823, yaw_deg: 45}
cap: free
cap_pose: {x: 0.33, y: -0.22, z: 0.790667, yaw_deg: 45}
tools: [vacuum]
"4":
cap: free
tools: [vacuum]
failures:
- {skill: grab, outcome: grasp_failed, attempt: 1}
"5":
cap: free
tools: [vacuum]
failures:
- skill: verify
outcome: not_ok
target: cap
attempt: 1
details: {after_first_install_x: 0.303}
"6":
cap: absent
tools: [sealant_tool]
sealant: [side_1]
"7":
cap: absent
tools: [sealant_tool]
sealant: [side_1, side_2]
"8":
cap: absent
tools: [sealant_tool]
sealant: [side_1, side_2, side_3, side_4]
"9":
cap: absent
tools: [sealant_tool]
sealant: [side_1, side_2, side_3, side_4]
failures:
- {skill: dispense, outcome: interrupted, target: side_3, attempt: 1}
"10":
cap: free
tools: [sealant_tool, vacuum]
sealant: [side_1, side_2, side_3, side_4]
"11":
cap: installed
tray: true
tools: [magnetic_tool]
screw_holes: [hole_1]
"12":
cap: installed
tray: true
tools: [magnetic_tool]
screw_holes: [hole_1, hole_3]
"13":
cap: installed
tray: true
tools: [magnetic_tool]
screw_holes: [hole_1, hole_2, hole_3]
"14":
cap: installed
tray: true
tools: [magnetic_tool, torque_tool]
screw_holes: [hole_1, hole_3, hole_2, hole_4]
"15":
cap: installed
tray: true
tools: [magnetic_tool, torque_tool]
screw_holes: [hole_1, hole_3, hole_2, hole_4]
failures:
- {skill: grab, outcome: grasp_failed, target: third_selected_screw, attempt: 1}
"16":
cap: free
tray: true
tools: [vacuum, magnetic_tool, sealant_tool, torque_tool]
sealant: [side_1]
screw_holes: [hole_1]
"17":
cap: free
tray: true
tools: [vacuum, magnetic_tool, sealant_tool, torque_tool]
sealant: [side_1, side_2, side_3, side_4]
screw_holes: [hole_1, hole_3]
"18":
cap: free
tray: true
tools: [vacuum, magnetic_tool, sealant_tool, torque_tool]
sealant: [side_1, side_2, side_3, side_4]
screw_holes: [hole_1, hole_3, hole_2, hole_4]
"19":
cap: free
cap_pose: {x: 0.37, y: -0.20, z: 0.790667, yaw_deg: 60}
tray: true
tray_pose: {x: 0.18, y: 0.48, z: 0.793, yaw_deg: 0}
tools: [vacuum, magnetic_tool, sealant_tool, torque_tool]
sealant: [side_1, side_2, side_3, side_4]
screw_holes: [hole_1, hole_3, hole_2, hole_4]
"20":
cap: free
tray: true
tools: [vacuum, magnetic_tool, sealant_tool, torque_tool]
sealant: [side_1, side_2, side_3, side_4]
screw_holes: [hole_1, hole_3, hole_2, hole_4]
failures:
- {skill: dispense, outcome: interrupted, target: side_3, attempt: 1}
- {skill: grab, outcome: grasp_failed, target: first_selected_screw, attempt: 1}
- {skill: verify, outcome: not_ok, target: cap, attempt: 1}