The workshop’s goal of achieving a simulated effect of direct human and robot interaction, given only two main key tools to work with – the position and target of the robot’s end effector. This project’s initial aim was to let a fight or flight scenario play out between the robot and the human, but through various iterations, a more peaceful result was achieved as the latter became the main focus. Rather than compliance, the goal was to explore the gesture of defense and distrust.


Several tools were provided in aiding the task at hand. The most important being the UR-10e robot with which the user must interact. An HTC Vive tracker was then used within Unity to simulate this interaction with the robot’s position and target.

These coordinates were then ultimately send using an OSC message to a computer running openFrameworks which connected to and controlled the robot.

Boids Algorithm

In order achieve the movements and interaction with the human (via the HTC tracker held in the user’s hand), the Boids or flocking algorithm was employed. This algorithm was initially conceived to simulate groups of animals and their interactions with one another. These interactions play out both on an individual and overall group scale


This algorithm relies on three key components:

  • alignment: where the vectors of the individual members of the group attempt to align with those nearby
  • cohesion: in which the members are attracted to their closest neighbors
  • separation: a property that is in direct opposition to the previous to ensure that the members are repelled from one another, ensuring that they maintain distance

In this case, the members of the “flock” comprise the robot’s end effector, the HTC Vive tracker, and a bounding box that confines the movement of the robot – which plays an important role in safety and limiting the possibility of singularity in the robot’s joints.

As we are dealing with not a flock in this situation, but rather two individuals, the fine-tuning of these parameters can become quite challenging.

To help compensate for this, a few extra helper flock members were added to the simulation.

In addition to allowing for a better result in the simulation’s interaction, this also helped the robot take on a playful movement, as it tended to sway and bounce, much as a fighter in a ring does in anticipation of his opponents next move.

These parameters all play a role in the success of this simulation, as each act in a constant dance of which gain the most weight and when.

In addition to the flocking algorithm, another layer of avoidance was added in. Getting the X coordinate of the tracker, the robot’s end effector position was set to always be in the other corner of the ring, so to speak.


The culmination of these factors resulted in a robot that was all flight and no fight.

The UR attempts to maintain its distance at all times, while playfully swaying side-to-side, like a qi gong master waiting to make his next move.



 Qi UR is a project by MRAC 01 students Amy Yeo Jong Kim, Shamanth Thenkan, Jordi Vilanova and Robert Michael Blackburn, during Workshop 3.2 of the third term. This workshop was taught by Madeline Gannon, Daniil Koshelyuk, Aslinur Taskin.