IEEE Robotics & Automation Magazine - September 2018 - 97

To determine the exact cause, the estimated pose from the
homing beacon observation would be stored and Cataglyphis
would drive to its next waypoint to perform another observation. If Cataglyphis was unable to detect the homing beacon by
the time it reached the designated homing waypoint (located
5 m in front of the homing beacon), a square update was performed with the assumption that the robot was lost. In this
case, Cataglyphis would drive a 14-m square pattern centered
on the perceived location, and, while stopped at each corner, it
would search for the homing beacon. If two consecutive estimates from homing beacon observations were consistent (i.e.,
within 2°), then Cataglyphis' pose was updated.
A homing timer was also implemented to indicate to Cataglyphis that it was time to return home for a navigation update.
This was done to limit the amount of dead-reckoning error
accumulated during periods of exploration, enabling more
accurate navigation and greatly reducing the chance of getting
lost. The homing timer did not pose a hard deadline, i.e., it did
not directly interrupt ongoing robot behaviors. Instead, the
urgency to go home gradually increased with time since the last
homing visit, which was factored into the decisions made by
Cataglyphis for the next courses of actions.
To provide mapping capabilities and to have a backup
mechanism of recovering if the primary navigation approach
fails, a variant of sparse point cloud SLAM [3] was implemented onboard Cataglyphis. In this approach, the lidar-generated
3-D point cloud was compressed into a two-dimensional
(2-D) occupancy grid, with 1-m resolution after leveling
and ground removal steps. Each grid cell contained the mean
of the planar projection (xy coordinates) of all points associated with that cell and the average height information (z coordinate). Using the grid map, iterative closest point (ICP) [4] was
performed to estimate the change in robot translation from the
previous time step, whereas the change in rotation was extracted from gyro integration.
To reject incorrect correspondences, a scoring system was
developed to determine whether ICP or wheel odometry provided a more accurate solution. The previous scan was transformed to the current pose using the transformations from
both ICP and wheel odometry. The points in both scans were
then matched with the points in the current scan using the
nearest neighbor search, and the scores were calculated for
each as the inverse of the sum of absolute position and height
error between corresponding grid cells. The higher-scoring
solution was kept as the transformation between frames.
To generate a global map, a keyframe strategy [3] was
implemented. First, temporary keyframes were generated
based on the grid map every 5 m as anchors for propagating
Cataglyphis' pose. Specifically, the transformation between
the current robot pose and the previous temporary keyframe
was solved with a graph optimization tool [5], using the estimated pose transformations between consecutive time steps
as well as the transformation between each time step and the
keyframe as edges. This temporary keyframe would become
permanent if no other permanent keyframes existed within a
20-m radius, and it would be used for generating a global

map. Due to the reliability of the homing update, Cataglyphis
did not perform loop closure; instead, the homing update
was used to reset the pose estimated by SLAM.
Overall, Cataglyphis was able to reliably localize itself anywhere on the competition field with a meter-level accuracy.
When Cataglyphis updated its pose in a close distance (<5 m)
in front of the homing beacon, it had centimeter-level positioning accuracy and less than 0.3° error in heading angle. This
performance ensured that Cataglyphis could both successfully
navigate to ROIs at the far reaches of the field and deposit collected samples on the starting platform with high accuracy.
Another responsibility of the robot perception system was
to find samples, which provided a different set of challenges.
First, Cataglyphis had to be able to recognize samples with only
partial information without prior exposure (e.g., the hard samples) in a field that contained objects that closely resembled the
samples. To deal with this issue, a wide range of mock samples
were fabricated and mixed with random items that could conceivably appear in the competition field. Photographs of these
objects made up the data set used for the training and testing of
the computer vision algorithms. Another challenging problem
was searching the large field quickly enough to successfully
complete the mission. This challenge resulted in the use of a circular fisheye lens in combination with a 50-megapixel camera,
enabling the surrounding area to be adequately captured by a
single image at each search position.
The computer vision subsystem was made up of three
main components: segmentation, classification, and localization. The segmentation algorithm separated pixel clusters
based on color into salient image regions called candidates.
Although segmentation was still the most time-consuming
portion of the computer vision software, we managed to
reduce the processing time by tenfold as compared to our
2015 approach [2]. Specifically, each pixel was defined by a
single byte per color channel. The color assignments for all
possible intensity values were calculated offline and easily
accessed from memory during runtime through a lookup
table. The lookup table consumed roughly 16 MB of memory,
and each pixel could be assigned with a single-memory access
by indexing the lookup table by intensity values. Before
extracting the segmented portions of the image for classification, the image was opened and closed using morphological
operations [2] to remove artifacts. The different stages of the
segmentation process are presented in Figure 6(a)-(c).
After segmentation, the candidate images were extracted and
passed to a sample classifier. The classification approach consisted of a convolutional neural network (CNN) based on AlexNet
[6], which has two convolutional layers, three fully connected
layers, and a softmax layer. The training data set included
more than 700,000 collected images. A set of candidate images and the corresponding sample types classified are presented in Figure 6(d) and (e). To better illustrate the segmentation
step prior to classification, the distribution of pixel intensities
for some candidates in Figure 6 are provided in Figure 7.
After sample classification, each candidate was assigned a
confidence value equal to the softmax output of the CNN. The
september 2018

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

97



IEEE Robotics & Automation Magazine - September 2018

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2018

Contents
IEEE Robotics & Automation Magazine - September 2018 - Cover1
IEEE Robotics & Automation Magazine - September 2018 - Cover2
IEEE Robotics & Automation Magazine - September 2018 - Contents
IEEE Robotics & Automation Magazine - September 2018 - 2
IEEE Robotics & Automation Magazine - September 2018 - 3
IEEE Robotics & Automation Magazine - September 2018 - 4
IEEE Robotics & Automation Magazine - September 2018 - 5
IEEE Robotics & Automation Magazine - September 2018 - 6
IEEE Robotics & Automation Magazine - September 2018 - 7
IEEE Robotics & Automation Magazine - September 2018 - 8
IEEE Robotics & Automation Magazine - September 2018 - 9
IEEE Robotics & Automation Magazine - September 2018 - 10
IEEE Robotics & Automation Magazine - September 2018 - 11
IEEE Robotics & Automation Magazine - September 2018 - 12
IEEE Robotics & Automation Magazine - September 2018 - 13
IEEE Robotics & Automation Magazine - September 2018 - 14
IEEE Robotics & Automation Magazine - September 2018 - 15
IEEE Robotics & Automation Magazine - September 2018 - 16
IEEE Robotics & Automation Magazine - September 2018 - 17
IEEE Robotics & Automation Magazine - September 2018 - 18
IEEE Robotics & Automation Magazine - September 2018 - 19
IEEE Robotics & Automation Magazine - September 2018 - 20
IEEE Robotics & Automation Magazine - September 2018 - 21
IEEE Robotics & Automation Magazine - September 2018 - 22
IEEE Robotics & Automation Magazine - September 2018 - 23
IEEE Robotics & Automation Magazine - September 2018 - 24
IEEE Robotics & Automation Magazine - September 2018 - 25
IEEE Robotics & Automation Magazine - September 2018 - 26
IEEE Robotics & Automation Magazine - September 2018 - 27
IEEE Robotics & Automation Magazine - September 2018 - 28
IEEE Robotics & Automation Magazine - September 2018 - 29
IEEE Robotics & Automation Magazine - September 2018 - 30
IEEE Robotics & Automation Magazine - September 2018 - 31
IEEE Robotics & Automation Magazine - September 2018 - 32
IEEE Robotics & Automation Magazine - September 2018 - 33
IEEE Robotics & Automation Magazine - September 2018 - 34
IEEE Robotics & Automation Magazine - September 2018 - 35
IEEE Robotics & Automation Magazine - September 2018 - 36
IEEE Robotics & Automation Magazine - September 2018 - 37
IEEE Robotics & Automation Magazine - September 2018 - 38
IEEE Robotics & Automation Magazine - September 2018 - 39
IEEE Robotics & Automation Magazine - September 2018 - 40
IEEE Robotics & Automation Magazine - September 2018 - 41
IEEE Robotics & Automation Magazine - September 2018 - 42
IEEE Robotics & Automation Magazine - September 2018 - 43
IEEE Robotics & Automation Magazine - September 2018 - 44
IEEE Robotics & Automation Magazine - September 2018 - 45
IEEE Robotics & Automation Magazine - September 2018 - 46
IEEE Robotics & Automation Magazine - September 2018 - 47
IEEE Robotics & Automation Magazine - September 2018 - 48
IEEE Robotics & Automation Magazine - September 2018 - 49
IEEE Robotics & Automation Magazine - September 2018 - 50
IEEE Robotics & Automation Magazine - September 2018 - 51
IEEE Robotics & Automation Magazine - September 2018 - 52
IEEE Robotics & Automation Magazine - September 2018 - 53
IEEE Robotics & Automation Magazine - September 2018 - 54
IEEE Robotics & Automation Magazine - September 2018 - 55
IEEE Robotics & Automation Magazine - September 2018 - 56
IEEE Robotics & Automation Magazine - September 2018 - 57
IEEE Robotics & Automation Magazine - September 2018 - 58
IEEE Robotics & Automation Magazine - September 2018 - 59
IEEE Robotics & Automation Magazine - September 2018 - 60
IEEE Robotics & Automation Magazine - September 2018 - 61
IEEE Robotics & Automation Magazine - September 2018 - 62
IEEE Robotics & Automation Magazine - September 2018 - 63
IEEE Robotics & Automation Magazine - September 2018 - 64
IEEE Robotics & Automation Magazine - September 2018 - 65
IEEE Robotics & Automation Magazine - September 2018 - 66
IEEE Robotics & Automation Magazine - September 2018 - 67
IEEE Robotics & Automation Magazine - September 2018 - 68
IEEE Robotics & Automation Magazine - September 2018 - 69
IEEE Robotics & Automation Magazine - September 2018 - 70
IEEE Robotics & Automation Magazine - September 2018 - 71
IEEE Robotics & Automation Magazine - September 2018 - 72
IEEE Robotics & Automation Magazine - September 2018 - 73
IEEE Robotics & Automation Magazine - September 2018 - 74
IEEE Robotics & Automation Magazine - September 2018 - 75
IEEE Robotics & Automation Magazine - September 2018 - 76
IEEE Robotics & Automation Magazine - September 2018 - 77
IEEE Robotics & Automation Magazine - September 2018 - 78
IEEE Robotics & Automation Magazine - September 2018 - 79
IEEE Robotics & Automation Magazine - September 2018 - 80
IEEE Robotics & Automation Magazine - September 2018 - 81
IEEE Robotics & Automation Magazine - September 2018 - 82
IEEE Robotics & Automation Magazine - September 2018 - 83
IEEE Robotics & Automation Magazine - September 2018 - 84
IEEE Robotics & Automation Magazine - September 2018 - 85
IEEE Robotics & Automation Magazine - September 2018 - 86
IEEE Robotics & Automation Magazine - September 2018 - 87
IEEE Robotics & Automation Magazine - September 2018 - 88
IEEE Robotics & Automation Magazine - September 2018 - 89
IEEE Robotics & Automation Magazine - September 2018 - 90
IEEE Robotics & Automation Magazine - September 2018 - 91
IEEE Robotics & Automation Magazine - September 2018 - 92
IEEE Robotics & Automation Magazine - September 2018 - 93
IEEE Robotics & Automation Magazine - September 2018 - 94
IEEE Robotics & Automation Magazine - September 2018 - 95
IEEE Robotics & Automation Magazine - September 2018 - 96
IEEE Robotics & Automation Magazine - September 2018 - 97
IEEE Robotics & Automation Magazine - September 2018 - 98
IEEE Robotics & Automation Magazine - September 2018 - 99
IEEE Robotics & Automation Magazine - September 2018 - 100
IEEE Robotics & Automation Magazine - September 2018 - 101
IEEE Robotics & Automation Magazine - September 2018 - 102
IEEE Robotics & Automation Magazine - September 2018 - 103
IEEE Robotics & Automation Magazine - September 2018 - 104
IEEE Robotics & Automation Magazine - September 2018 - 105
IEEE Robotics & Automation Magazine - September 2018 - 106
IEEE Robotics & Automation Magazine - September 2018 - 107
IEEE Robotics & Automation Magazine - September 2018 - 108
IEEE Robotics & Automation Magazine - September 2018 - 109
IEEE Robotics & Automation Magazine - September 2018 - 110
IEEE Robotics & Automation Magazine - September 2018 - 111
IEEE Robotics & Automation Magazine - September 2018 - 112
IEEE Robotics & Automation Magazine - September 2018 - 113
IEEE Robotics & Automation Magazine - September 2018 - 114
IEEE Robotics & Automation Magazine - September 2018 - 115
IEEE Robotics & Automation Magazine - September 2018 - 116
IEEE Robotics & Automation Magazine - September 2018 - Cover3
IEEE Robotics & Automation Magazine - September 2018 - 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