# Interaction Lab Accomplishments ## Part 1: Autonomous Actions - Created a ROS package with autonomous actions - AR Tags: detection, ability to follow an AR tag (PD controller) - Audio: Locate audio and turn towards source (max norm algorithm) - Vision: Find and follow a colored line (OpenCV) - Use a HSV filter to find the appropriate color - Find the center of mass of the largest contour and follow that using a PD controller - Movement: - Autonomous movement - Potential field controller - break down forces into x and y components - X forces control steering angle, Y forces control speed - The closer Kuri is to an object, the greater the repulsive force it exerts - Teleop program to move robot and control head movement/expression - Control LED lights ## Part 2: Action Planner - Worked with Eitan to create and implement an action planning algorithm - Monte Carlo Tree Search: - Best first search to explore current best action and score them based on current reward and future reward - Create nodes for each human and robot possible action - Using an estimate of human strategy (varying scales of greediness depending on play strength and other factors), calculate optimal robot actions - Closed loop belief updater - Seek to understand why human chose sub-optimal actions and update the estimate of human beliefs to explain this using a box-constrained least squares formulation - Robot sometimes intentionally fails since failures can be informative to update human beliefs - Proven to give optimal strategy in test games created ## Part 3: Experimental Design - Worked with Eitan to design a collaborative game where the user and robot work together to gain the most points - 5 stages, 5 rooms per stage (5x5), 6 abilities. Human chooses a room, then robot chooses a room - Ran a simple paper version of the game with 4 interviewees for proof of concept testing - Designed physical room layouts for Kuri to do (final game was 5x4, 6 abilities) - Shot videos (3+ different camera angles each) of each success/failure - Created a website from scratch to host the experiment (see github url README for more details) - Frontend: ReactJS (deployed using github pages) - Display room options, integrate videos, player feedback for understanding the player's beliefs - Backend: NodeJS server - Store player choices and feedback in a google sheet - Random treatments - Random chance of getting Kuri's optimal strategy vs a random (placebo) strategy - 21 participated in this online study - Statistically significant ($p \approx 10^{-5}$) difference in human beliefs of skills Kuri actually had vs didn't have (using end of survey likert scale data) ## Overall takeaways: - Largest coding project I've ever done (each part had ~1000 lines of code written from scratch) - First long term (several weeks) collaborative coding experience - Really come to understand the need to write clean, efficient code with such a large project - Sometimes it is better to just make our own implementation instead of forcing an existing model - Less efficient and more complicated to formulate our problem in a format compatible with an existing POMDP solver - Able to leverage invariants specific to our problem to make the problem tractable (solves within seconds) - People (experiment participants) are unpredictable in the choices they make (from our experiments)