  We present situated live programming for human-robot collaboration, an
approach that enables users with limited programming experience to program
collaborative applications for human-robot interaction. Allowing end users,
such as shop floor workers, to program collaborative robots themselves would
make it easy to "retask" robots from one process to another, facilitating their
adoption by small and medium enterprises. Our approach builds on the paradigm
of trigger-action programming (TAP) by allowing end users to create rich
interactions through simple trigger-action pairings. It enables end users to
iteratively create, edit, and refine a reactive robot program while executing
partial programs. This live programming approach enables the user to utilize
the task space and objects by incrementally specifying situated trigger-action
pairs, substantially lowering the barrier to entry for programming or
reprogramming robots for collaboration. We instantiate situated live
programming in an authoring system where users can create trigger-action
programs by annotating an augmented video feed from the robot's perspective and
assign robot actions to trigger conditions. We evaluated this system in a study
where participants (n = 10) developed robot programs for solving collaborative
light-manufacturing tasks. Results showed that users with little programming
experience were able to program HRC tasks in an interactive fashion and our
situated live programming approach further supported individualized strategies
and workflows. We conclude by discussing opportunities and limitations of the
proposed approach, our system implementation, and our study and discuss a
roadmap for expanding this approach to a broader range of tasks and
applications.
