IEEE Robotics & Automation Magazine - March 2022 - 61

collected data from the subscriber and renders corresponding
visual elements at 20 Hz. This callback frequency was
chosen to suit the limited processing capabilities of AR headsets,
while being frequent enough to maintain a smooth
motion of the visual elements-only slightly slower than the
24 Hz frame rate for movies.
Tool Plugins are components of ARviz that utilize input
modalities of the AR device such as gaze tracking and speech
recognition to provide a multimodal communication interface
with ROS. Tool Plugins can be used for communicating with a
robot's navigation stack to move the robot around the environment
or for issuing command to a robotic manipulator to start
a handover task (more details are provided in the " Mobile
Robot Navigation " and " Visualizing Robotic Arm's Goal Pose
During Object's Handover " section). Similar to Display Plugins,
users can implement their own plugins to tailor to their needs
for communicating with ROS and interacting with the robot.
The implementation of this plugin can be varied depending
on the communication channel. The Tool Plugin is developed
as an extension of the input handler provided by
Microsoft's Mixed Reality Toolkit (https://docs.microsoft
.com/en-gb/windows/mixed-reality/mrtk-unity/?view=
mrtkunity-2021-05), a Unity package for mixed reality application
development, which provides APIs to input system and
other building blocks for spatial interactions. User inputs are
collected by Tool Plugins, which then send the information to
ROS using ROS#, through a component called a publisher
(more details in the " Communication with ROS " section).
Hand Menu
A menu that can be summoned at the user's fingertips, literally,
is developed to provide quick and easy control of all of the
available plugins implemented in ARviz. By raising their left
hand as shown in Figure 3, the user can make the hand menu
appear and access configurations of the Display Plugins and
Tool Plugins. Using this menu, users can toggle the visibility of
Display Plugins, enable/disable Tool Plugins or access/modify
each plugin's specific properties (as shown later in Figure 6).
Additional menu entries can be added, and their behaviors
customized for user-defined Display Plugins and Tool Plugins.
Hologram Localization
For AR applications, we need to consider two coordinate
systems: the virtual world coordinate system (VWCS),
where virtual objects/holograms are rendered, and the real
world coordinate system (RWCS), where the physical entities
(e.g., the robot) exist. Typically, when an AR application
is started up, it arbitrarily initializes the base frame of
the VWCS to be where the AR device is physically located
in the real world. On the other hand, in a ROS application,
the RWCS is managed by the tf transformation ROS package,
and the base frame of the RWCS can be defined by the
user to be anywhere in the physical world. In order for the
Display Plugins and Tool Plugins in ARviz to render virtual
display elements at appropriate locations in the real world,
two pieces of information are needed: 1) the pose (position
and orientation) of the VWCS with respect to the RWCS,
i.e., the transformation between the VWCS and the RWCS;
and 2) where the display element should be located with
respect to the RWCS. These two pieces of information are
provided by Vuforia Engine and Unity tf Listener, as
described later.
Aligning RWCS and VWCS using Vuforia
To define the transformation between RWCS and VWCS, we
define an anchor point that tell us where the VWCS base
frame should be, within the RWCS. Vuforia Engine allows the
specification of this anchor through a physical QR code
marker placed in the real world. To create this anchor, a physical
QR code marker is placed at fixed, known location within
the RWCS. In ARviz, the Vuforia Engine is deployed to detect
this QR code marker. Once the AR devices detects the QR
marker, it computes the transformation between the AR
device and the physical QR marker. Since the position of the
AR device with respect to the VWCS is always tracked by the
AR application, the transformation between the VWCS and
RWCS can be computed. Once this transformation is computed,
ARviz then repositions the VWCS base frame to coincide
with the RWCS base frame, aligning the virtual world
with the real world. The alignment process is illustrated in
Figure 4.
(a)
(b)
(c)
Figure 4. ARviz's virtual world alignment. The virtual objects would be initially rendered at random location, misaligning with the real
world (a). With the use of the QR code marker in the real world and Vuforia Engine in ARviz (b), the virtual world is aligned with the
real world, allowing the correct overlay of the virtual objects onto the real world (c).
MARCH 2022 * IEEE ROBOTICS & AUTOMATION MAGAZINE *
61
https://docs.microsoft.com/en-gb/windows/mixed-reality/mrtk-unity/?view= mrtkunity-2021-05 https://docs.microsoft.com/en-gb/windows/mixed-reality/mrtk-unity/?view= mrtkunity-2021-05 https://docs.microsoft.com/en-gb/windows/mixed-reality/mrtk-unity/?view= mrtkunity-2021-05

IEEE Robotics & Automation Magazine - March 2022

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - March 2022

Contents
IEEE Robotics & Automation Magazine - March 2022 - Cover1
IEEE Robotics & Automation Magazine - March 2022 - Cover2
IEEE Robotics & Automation Magazine - March 2022 - Contents
IEEE Robotics & Automation Magazine - March 2022 - 2
IEEE Robotics & Automation Magazine - March 2022 - 3
IEEE Robotics & Automation Magazine - March 2022 - 4
IEEE Robotics & Automation Magazine - March 2022 - 5
IEEE Robotics & Automation Magazine - March 2022 - 6
IEEE Robotics & Automation Magazine - March 2022 - 7
IEEE Robotics & Automation Magazine - March 2022 - 8
IEEE Robotics & Automation Magazine - March 2022 - 9
IEEE Robotics & Automation Magazine - March 2022 - 10
IEEE Robotics & Automation Magazine - March 2022 - 11
IEEE Robotics & Automation Magazine - March 2022 - 12
IEEE Robotics & Automation Magazine - March 2022 - 13
IEEE Robotics & Automation Magazine - March 2022 - 14
IEEE Robotics & Automation Magazine - March 2022 - 15
IEEE Robotics & Automation Magazine - March 2022 - 16
IEEE Robotics & Automation Magazine - March 2022 - 17
IEEE Robotics & Automation Magazine - March 2022 - 18
IEEE Robotics & Automation Magazine - March 2022 - 19
IEEE Robotics & Automation Magazine - March 2022 - 20
IEEE Robotics & Automation Magazine - March 2022 - 21
IEEE Robotics & Automation Magazine - March 2022 - 22
IEEE Robotics & Automation Magazine - March 2022 - 23
IEEE Robotics & Automation Magazine - March 2022 - 24
IEEE Robotics & Automation Magazine - March 2022 - 25
IEEE Robotics & Automation Magazine - March 2022 - 26
IEEE Robotics & Automation Magazine - March 2022 - 27
IEEE Robotics & Automation Magazine - March 2022 - 28
IEEE Robotics & Automation Magazine - March 2022 - 29
IEEE Robotics & Automation Magazine - March 2022 - 30
IEEE Robotics & Automation Magazine - March 2022 - 31
IEEE Robotics & Automation Magazine - March 2022 - 32
IEEE Robotics & Automation Magazine - March 2022 - 33
IEEE Robotics & Automation Magazine - March 2022 - 34
IEEE Robotics & Automation Magazine - March 2022 - 35
IEEE Robotics & Automation Magazine - March 2022 - 36
IEEE Robotics & Automation Magazine - March 2022 - 37
IEEE Robotics & Automation Magazine - March 2022 - 38
IEEE Robotics & Automation Magazine - March 2022 - 39
IEEE Robotics & Automation Magazine - March 2022 - 40
IEEE Robotics & Automation Magazine - March 2022 - 41
IEEE Robotics & Automation Magazine - March 2022 - 42
IEEE Robotics & Automation Magazine - March 2022 - 43
IEEE Robotics & Automation Magazine - March 2022 - 44
IEEE Robotics & Automation Magazine - March 2022 - 45
IEEE Robotics & Automation Magazine - March 2022 - 46
IEEE Robotics & Automation Magazine - March 2022 - 47
IEEE Robotics & Automation Magazine - March 2022 - 48
IEEE Robotics & Automation Magazine - March 2022 - 49
IEEE Robotics & Automation Magazine - March 2022 - 50
IEEE Robotics & Automation Magazine - March 2022 - 51
IEEE Robotics & Automation Magazine - March 2022 - 52
IEEE Robotics & Automation Magazine - March 2022 - 53
IEEE Robotics & Automation Magazine - March 2022 - 54
IEEE Robotics & Automation Magazine - March 2022 - 55
IEEE Robotics & Automation Magazine - March 2022 - 56
IEEE Robotics & Automation Magazine - March 2022 - 57
IEEE Robotics & Automation Magazine - March 2022 - 58
IEEE Robotics & Automation Magazine - March 2022 - 59
IEEE Robotics & Automation Magazine - March 2022 - 60
IEEE Robotics & Automation Magazine - March 2022 - 61
IEEE Robotics & Automation Magazine - March 2022 - 62
IEEE Robotics & Automation Magazine - March 2022 - 63
IEEE Robotics & Automation Magazine - March 2022 - 64
IEEE Robotics & Automation Magazine - March 2022 - 65
IEEE Robotics & Automation Magazine - March 2022 - 66
IEEE Robotics & Automation Magazine - March 2022 - 67
IEEE Robotics & Automation Magazine - March 2022 - 68
IEEE Robotics & Automation Magazine - March 2022 - 69
IEEE Robotics & Automation Magazine - March 2022 - 70
IEEE Robotics & Automation Magazine - March 2022 - 71
IEEE Robotics & Automation Magazine - March 2022 - 72
IEEE Robotics & Automation Magazine - March 2022 - 73
IEEE Robotics & Automation Magazine - March 2022 - 74
IEEE Robotics & Automation Magazine - March 2022 - 75
IEEE Robotics & Automation Magazine - March 2022 - 76
IEEE Robotics & Automation Magazine - March 2022 - 77
IEEE Robotics & Automation Magazine - March 2022 - 78
IEEE Robotics & Automation Magazine - March 2022 - 79
IEEE Robotics & Automation Magazine - March 2022 - 80
IEEE Robotics & Automation Magazine - March 2022 - 81
IEEE Robotics & Automation Magazine - March 2022 - 82
IEEE Robotics & Automation Magazine - March 2022 - 83
IEEE Robotics & Automation Magazine - March 2022 - 84
IEEE Robotics & Automation Magazine - March 2022 - 85
IEEE Robotics & Automation Magazine - March 2022 - 86
IEEE Robotics & Automation Magazine - March 2022 - 87
IEEE Robotics & Automation Magazine - March 2022 - 88
IEEE Robotics & Automation Magazine - March 2022 - 89
IEEE Robotics & Automation Magazine - March 2022 - 90
IEEE Robotics & Automation Magazine - March 2022 - 91
IEEE Robotics & Automation Magazine - March 2022 - 92
IEEE Robotics & Automation Magazine - March 2022 - 93
IEEE Robotics & Automation Magazine - March 2022 - 94
IEEE Robotics & Automation Magazine - March 2022 - 95
IEEE Robotics & Automation Magazine - March 2022 - 96
IEEE Robotics & Automation Magazine - March 2022 - 97
IEEE Robotics & Automation Magazine - March 2022 - 98
IEEE Robotics & Automation Magazine - March 2022 - 99
IEEE Robotics & Automation Magazine - March 2022 - 100
IEEE Robotics & Automation Magazine - March 2022 - 101
IEEE Robotics & Automation Magazine - March 2022 - 102
IEEE Robotics & Automation Magazine - March 2022 - 103
IEEE Robotics & Automation Magazine - March 2022 - 104
IEEE Robotics & Automation Magazine - March 2022 - 105
IEEE Robotics & Automation Magazine - March 2022 - 106
IEEE Robotics & Automation Magazine - March 2022 - 107
IEEE Robotics & Automation Magazine - March 2022 - 108
IEEE Robotics & Automation Magazine - March 2022 - 109
IEEE Robotics & Automation Magazine - March 2022 - 110
IEEE Robotics & Automation Magazine - March 2022 - 111
IEEE Robotics & Automation Magazine - March 2022 - 112
IEEE Robotics & Automation Magazine - March 2022 - 113
IEEE Robotics & Automation Magazine - March 2022 - 114
IEEE Robotics & Automation Magazine - March 2022 - 115
IEEE Robotics & Automation Magazine - March 2022 - 116
IEEE Robotics & Automation Magazine - March 2022 - 117
IEEE Robotics & Automation Magazine - March 2022 - 118
IEEE Robotics & Automation Magazine - March 2022 - 119
IEEE Robotics & Automation Magazine - March 2022 - 120
IEEE Robotics & Automation Magazine - March 2022 - 121
IEEE Robotics & Automation Magazine - March 2022 - 122
IEEE Robotics & Automation Magazine - March 2022 - 123
IEEE Robotics & Automation Magazine - March 2022 - 124
IEEE Robotics & Automation Magazine - March 2022 - Cover3
IEEE Robotics & Automation Magazine - March 2022 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com