Mixed Reality and Robotics – Tutorial @ IROS 2020

Mixed Reality and Robotics – Tutorial @ IROS 2020


Welcome to the Mixed Reality and Robotics Tutorial at IROS 2020.  This year’s conference is using an on-demand, virtual format, which means that all of the content for this tutorial is available as streaming videos, with code samples to accompany the demos.  However, the conference organizers have made registration FREE, so by signing up here, you can gain access to all of the talks and papers, as well as the workshops and tutorials (including this one).   Please see the Agenda tab for more detailed information about the tutorial contents.

Once registered, the on-demand videos can be reached directly on the IROS On-Demand Platform.

To follow along with the colocalization tutorial, you will also need to register for the Azure Spatial Anchors Linux SDK which can be done at this Signup Link.


In order to view the tutorial videos, you will need to be registered for the IROS conference.  However, to help us better understand the research interests of the audience, and to more easily contact IROS attendees who are interested in Mixed Reality, we would kindly ask that you click the link in the top left to register for this event.  Registration for our tutorial is not binding, and is separate from the IROS conference registration.  In order to access the content for this tutorial through the IROS On-Demand site, you will still need to register for the IROS conference.


Mixed, Augmented, and Virtual Reality offer exciting new frontiers in communication, entertainment, and productivity. A primary feature of Mixed Reality (MR) is the ability to register the digital world with the physical one, opening the door to a wide variety of robotics applications. This capability enables more natural human-robot interaction: instead of a user interfacing with a robot through a computer screen, we envision a future in which the user interacts with a robot in the same environment through MR, to see what it sees, to see its intentions, and seamlessly control it in its own representation of the world.

The purpose of this tutorial is to introduce the audience to both the high-level concepts of Mixed Reality and practically demonstrate how these concepts can be used to interact with a robot through an MR device. We will discuss how various hardware devices (mobile phones, AR/MR/VR headsets, and robots’ on-board sensors) can integrate with cloud services to create a digital representation of the physical world, and how such a representation can be used for co-localization. Participants will have a chance to create an iOS, Android, or Microsoft HoloLens 2 app to control and interact with a virtual robot, with instructions on how to adapt the sample code to a real robot, so attendees can start using Mixed Reality in their own robotics projects.

Workshop Organizers

Marc Pollefeys
Helen Oleynikova
Jeff Delmerico


Tutorial Contents

We cover “big picture” ideas of Mixed Reality and how we envision that it will transform how we interact with robots, along with technical details on a few different ways to do colocalization to allow any Mixed or Augmented Reality device to share a coordinate frame with a robot.   Finally, there is a practical portion where we introduce a few of the tools that are necessary to create full Mixed Reality experiences with robotics. This takes the form of several demos that attendees will be able to build and run on their own, and adapt to use with their own robots.

The tutorial features five videos on the IROS 2020 streaming site:

  1. Introduction to MR and Robotics [Direct Link]
  2. Interaction [Direct Link]
    • Mixed Reality as an intuitive bridge between robots and humans
    • MR, AR, VR, a brief overview of differences and sample devices
    • Modes of Interaction in MR
  3. Colocalization [Direct Link]
    • Co-localization with Mixed Reality devices
      • AR-tag-based
      • Vision-based
      • Shared-map-based
    • Azure Spatial Anchors
      • Technical introduction
      • How to use ASA to colocalize different devices
  4. Demo 1: Interaction [Direct Link] [Source Code]
    • Writing and deploying phone and Hololens apps
      • Unity
      • ROS# and ROS bridge for interfacing with ROS
    • Interacting with a virtual robot through AR and MR
  5. Demo 2: Colocalization [Direct Link] [Source Code]
    • Azure Spatial Anchors SDK for localization of robots and MR devices
    • Creating and querying spatial anchors using sample data
    • How to use this code with your own camera

Demo Materials

Demo 1 – Interaction

Sample code for the exercises in this demo can be found here: https://github.com/microsoft/mixed-reality-robot-interaction-demo

This repo contains an extensive wiki with instructions on how to run the demo with pre-built apps and docker containers, how to set up your system to develop and deploy MR apps, and how to adapt the sample code to your own robot.

Demo 2 – Colocalization

This demo focuses on a special research-only software package: the Azure Spatial Anchors Linux SDK.  Instructions for obtaining the closed-source binaries and open-source ROS wrapper can be found at the wrapper’s github page: https://github.com/microsoft/azure_spatial_anchors_ros

The wiki in this repo contains instructions for running the demo using sample datasets, an overview of the structure of the ASA interface and features of the ROS node, as well as some tips for using ASA from a live camera.


We hope that this information and these tools help you to incorporate Mixed Reality into your robotics projects, for colocalization and/or human-robot interaction.  We would like to encourage you to send us feedback on your experience with the tutorial.  Please engage with us on github by filing issues (for questions or problems not covered in the wikis) or contributing to the two repositories.

As a reminder, please register on the event registration site! This is to help us get an estimate of how many people will use the course materials and will help us to share more information with attendees.



Microsoft Research Blog