IEEE Robotics & Automation Magazine - March 2022 - 62

Unity tf Listener
Data in ROS are specified with respect to a given base frame
to provide physical spatial context (e.g., a robot's coordinate
may be specified relative to the map frame). ROS is a distributed
computing system by design. Hence, in ROS applications,
transformations
between different coordinate
frames are asynchronously
broadcasted
(published) by different
processes (nodes). The
ROS component named
tf Listener collects and
assembles all of this
transformation information
and allows any
component of the ROS
application to query
The tf Display Plugin visualizes coordinate frames moniThe
holograms are
accurately localized in the
real world with the help
of Vuforia Engine and
Unity tf Listener.
transformation between any two coordinate frames. The
Unity tf Listener provides the analogous functionality in
ARviz. Asynchronous transformation information from the
ROS application is passed on to the Unity tf Listener
through ROS#. The Unity tf Listener collects and assembles
the transformation information. Display Plugins and Tool
Plugins can then query transformation between any two
coordinate frames and render display elements at appropriate
locations.
Communication with ROS
For the plugins to receive and send data to and from ROS
applications, a connection with the ROS environment is
required. ROS runs on Ubuntu, and within ROS applications,
nodes (i.e, processes) communicate with each other
by broadcasting messages (i.e., data structures) over topics
(i.e., communication channels). Publishers are used to
broadcast messages and subscribers are used to receive and
manage messages. On the other hand, ARviz is built on
the Unity Game Engine, a platform that does not natively
support ROS APIs for establishing the communication
channels mentioned earlier. To resolve this problem, a
combination of rosbridge on ROS and ROS# on Unity was
used. rosbridge and ROS# allow ARviz and any ROS application
to communicate via a common standard JSON
string format over TCP/IP, as shown in Figure 2. rosbridge
establishes the network port for ARviz to connect to
ROS# provides ROS-like APIs such as ROS# Publisher and
ROS# Subscriber, enabling ARviz plugins to communicate
with other ROS applications through ROS-like communication
mechanisms.
Available Plugins
Three Display Plugins and two Tool Plugins were implemented
in our initial release of ARviz. These plugins are developed
and tested on the AR-head-mounted-display Microsoft HoloLens
2 (https://www.microsoft.com/en-AU/hololens/hardware)
and are summarized in Figure 5.
62 * IEEE ROBOTICS & AUTOMATION MAGAZINE * MARCH 2022
tored by the Unity tf Listener. Each coordinate frame is visualized
as a set of 3D axes, with red, green, and blue
corresponding to x, y and z axis. Figure 6(a) shows examples
of visualizing the joint/link frames of two robots. The plugin
can also show the name of each frame and the connection
between it and its parent frame, depicted with an arrow. The
visibility of each element of this Display Plugin can be toggled
through a control panel as shown in Figure 6(b). The tf
Display Plugin can be used for visually confirming the connectivity
between ARviz and the ROS application as well as
verifying the alignment between the VWCS and the RWVS.
Moreover, tf Display Plugin allows users to visualize many
aspects of robot operation, including robot localization and
robot structure, and serves as a powerful development and
debugging tool. Users can utilize tf Display Plugin to view
the connections between the coordinate frames within the
robot for a better understanding of how the robot base, its
multilink manipulator and other degrees of freedom, operate
as a whole.
The VisualizationMarkerArray Display Plugin visualizes a
collection of user-defined markers. These markers include
various primitives such as cubes and spheres, text, or lines.
This plugin is inspired by the MarkerArray (http://wiki.ros
.org/rviz/DisplayTypes/Marker) display in Rviz and provides
the visualization capabilities similar to its rviz counterpart.
The VisualizationMarkerArray display plugin allows users to
display arbitrary primitives in the virtual world through a
user-defined ROS topic by publishing messages of type visualization_msgs/MarkerArray
to this topic. This plugin provides
a generic tool for creating visual markers with user-defined
size, color, shape, and location. This tool can be used for a
wide range of tasks such as creating text labels, visualizing
robot paths, and generating object indicators.
The Stamped Pose Display Plugin visualizes the translation
and orientation of a virtual object with respect to a given
coordinate frame, given in the format of a geometry_msgs/
PoseStamped ROS message type. The default virtual object
used for the visualization is an arrow, but users can customize
this plugin by defining their own preloaded object model or
mesh to be displayed instead the default arrow. The plugin listens
for any incoming messages being published to a topic
defined by the users and visualizes the pose with the virtual
object accordingly. This plugin is useful for visualizing the 3D
pose of robots or occluded objects, for example.
The 2D Arrow Tool Plugin allows users to specify a 2D
pose (position and orientation) by placing an arrow on the
ground plane in AR through the use of hand gestures. When
the user raises their hand, a ray emanating from the hand is
displayed in AR as a dotted line. When the user taps the index
finger with the thumb (known as an " air tap " gesture), the
location where the ray intersects the ground plane is identify,
and an arrow is placed with its tail endpoint fixed at this location.
Next, the user can rotate the arrow on the floor by moving
the raised hand-the arrow tip will follow the intersecting
point between the hand ray and the ground plane. By
http://wiki.ros.org/rviz/DisplayTypes/Marker http://wiki.ros.org/rviz/DisplayTypes/Marker https://www.microsoft.com/en-AU/hololens/hardware

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