IEEE Robotics & Automation Magazine - June 2017 - 50
Table 2. The profiler results for 1,000 random
configurations.
Profiler Metric
Instruction
references
Figure 5. The IACs: the guidance paths to navigation goals.
potential goal vertices. This increases the chances of find-
ing a low-cost path from the source vertex. In a last step,
multiple shortest-path searches to the set of goal vertices
are performed using the A* algorithm, and the resulting
lowest-cost path ^Psh is chosen for user guidance. An
example of the shortest paths to various targets is depict-
ed in Figure 5.
Inverse Kinematics
The shortest-path search between the current robot
configuration and the desired navigation target provides
visual and haptic guidance to the user. Nevertheless, it
is ensured that the operator is in full control of the
robot. Toward this end, the online inverse kinematics
algorithm presented in [1] is used to allow user-intend-
ed deviation from the given paths. Multiple optimiza-
tion algorithms,
● controlled random search with local mutation
● multilevel, single-linkage with low-discrepancy
● bound optimization by quadratic approximation
● principal axis
● software for unconstrained minimization without derivative
● nelder-mead simplex algorithm
● damped-least squares Jacobian,
run in parallel on disparate computing devices to minimize
the cost function:
C ^q, T, C, p D, z Dh =
+
+
+
c pos
c ori
c ana
c sta
pD - pO 2
a sin ^ z D - z O 2h
C ana ^q, T, Ch
C sta ^q, T h .
Table 1. The friction constraint parameters.
Parameter
Value
Parameter
[N]
1.75
v0
[N/mm]
0.5
H appex
6c@
15
v1
[N.s/mm]
0.0003
zcss
[mm]
3.5
v2
[N.s/mm]
0.0012
fC
50
*
IEEE ROBOTICS & AUTOMATION MAGAZINE
*
June 2017
Value
(7)
Variadic
Template
Simple
Template
Completely
Dynamic
1124E5
1303E5
19 296E5
Data references
526E5
674E5
7824E5
Last-level cache
0.31E5
0.55E5
2.75E5
Branches
28E5
40E5
2949E5
Misprediction
0.21E5
0.25E5
5.16E5
Misprediction rate
0.73%
0.63%
1.75%
This cost function depends on the current robot end-
effector pose ^ p O, z Oh, anatomy ^Ch, robot kinematics
^ T h, and desired end-effector pose ^ p D, z Dh . Further,
there is dependence on cost functions that encode risk of
collision with the anatomy (C ana ) and configuration
instability ^C stah . The inverse kinematics solver is initial-
ized based on (5.1)-(5.3) with the joint values of the ver-
tex v i ! Ps closest to the current robot configuration.
Therefore, finding a locally best configuration for the cur-
rent desired position (telemanipulation position) is based
on the globally optimized configuration to reach the goal
robot configuration.
Haptic guidance is based on an elastoplastic friction
model, which redirects kinetic energy from user input toward
the guidance path [16]. The parameters governing the extent
and feel of haptic guidance can be found in Table 1 and follow
the formulas introduced in [1].
Experimental Results
Computational Benchmark
This section compares three kinematic implementations
written in C++ to demonstrate the computational efficien-
cy gained by the novelties of the work described herein.
The first implementation is completely dynamic and was
used in [14]. Each robot consists of a set of sections, and each
section consists of a number of tubes. Limited compile time
optimization is possible with this approach, and therefore, the
computational efficiency is low.
The second implementation, simple template, encodes
the robot as a template class with two parameters:
1) the number of sections and 2) the number of tubes.
Although this approach allows the full unrolling of loops
and the resolutioning of conditional expressions at com-
pile time, the section class had to be implemented using
virtual functions, which resulted in significant run-
time overheads.
The final approach, variadic template, is the contribution
of this article and follows the new design patterns.
All benchmarks were performed on an Intel Core
i7-3770 CPU. Table 2 shows profiler results from the
Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - June 2017
IEEE Robotics & Automation Magazine - June 2017 - Cover1
IEEE Robotics & Automation Magazine - June 2017 - Cover2
IEEE Robotics & Automation Magazine - June 2017 - 1
IEEE Robotics & Automation Magazine - June 2017 - 2
IEEE Robotics & Automation Magazine - June 2017 - 3
IEEE Robotics & Automation Magazine - June 2017 - 4
IEEE Robotics & Automation Magazine - June 2017 - 5
IEEE Robotics & Automation Magazine - June 2017 - 6
IEEE Robotics & Automation Magazine - June 2017 - 7
IEEE Robotics & Automation Magazine - June 2017 - 8
IEEE Robotics & Automation Magazine - June 2017 - 9
IEEE Robotics & Automation Magazine - June 2017 - 10
IEEE Robotics & Automation Magazine - June 2017 - 11
IEEE Robotics & Automation Magazine - June 2017 - 12
IEEE Robotics & Automation Magazine - June 2017 - 13
IEEE Robotics & Automation Magazine - June 2017 - 14
IEEE Robotics & Automation Magazine - June 2017 - 15
IEEE Robotics & Automation Magazine - June 2017 - 16
IEEE Robotics & Automation Magazine - June 2017 - 17
IEEE Robotics & Automation Magazine - June 2017 - 18
IEEE Robotics & Automation Magazine - June 2017 - 19
IEEE Robotics & Automation Magazine - June 2017 - 20
IEEE Robotics & Automation Magazine - June 2017 - 21
IEEE Robotics & Automation Magazine - June 2017 - 22
IEEE Robotics & Automation Magazine - June 2017 - 23
IEEE Robotics & Automation Magazine - June 2017 - 24
IEEE Robotics & Automation Magazine - June 2017 - 25
IEEE Robotics & Automation Magazine - June 2017 - 26
IEEE Robotics & Automation Magazine - June 2017 - 27
IEEE Robotics & Automation Magazine - June 2017 - 28
IEEE Robotics & Automation Magazine - June 2017 - 29
IEEE Robotics & Automation Magazine - June 2017 - 30
IEEE Robotics & Automation Magazine - June 2017 - 31
IEEE Robotics & Automation Magazine - June 2017 - 32
IEEE Robotics & Automation Magazine - June 2017 - 33
IEEE Robotics & Automation Magazine - June 2017 - 34
IEEE Robotics & Automation Magazine - June 2017 - 35
IEEE Robotics & Automation Magazine - June 2017 - 36
IEEE Robotics & Automation Magazine - June 2017 - 37
IEEE Robotics & Automation Magazine - June 2017 - 38
IEEE Robotics & Automation Magazine - June 2017 - 39
IEEE Robotics & Automation Magazine - June 2017 - 40
IEEE Robotics & Automation Magazine - June 2017 - 41
IEEE Robotics & Automation Magazine - June 2017 - 42
IEEE Robotics & Automation Magazine - June 2017 - 43
IEEE Robotics & Automation Magazine - June 2017 - 44
IEEE Robotics & Automation Magazine - June 2017 - 45
IEEE Robotics & Automation Magazine - June 2017 - 46
IEEE Robotics & Automation Magazine - June 2017 - 47
IEEE Robotics & Automation Magazine - June 2017 - 48
IEEE Robotics & Automation Magazine - June 2017 - 49
IEEE Robotics & Automation Magazine - June 2017 - 50
IEEE Robotics & Automation Magazine - June 2017 - 51
IEEE Robotics & Automation Magazine - June 2017 - 52
IEEE Robotics & Automation Magazine - June 2017 - 53
IEEE Robotics & Automation Magazine - June 2017 - 54
IEEE Robotics & Automation Magazine - June 2017 - 55
IEEE Robotics & Automation Magazine - June 2017 - 56
IEEE Robotics & Automation Magazine - June 2017 - 57
IEEE Robotics & Automation Magazine - June 2017 - 58
IEEE Robotics & Automation Magazine - June 2017 - 59
IEEE Robotics & Automation Magazine - June 2017 - 60
IEEE Robotics & Automation Magazine - June 2017 - 61
IEEE Robotics & Automation Magazine - June 2017 - 62
IEEE Robotics & Automation Magazine - June 2017 - 63
IEEE Robotics & Automation Magazine - June 2017 - 64
IEEE Robotics & Automation Magazine - June 2017 - 65
IEEE Robotics & Automation Magazine - June 2017 - 66
IEEE Robotics & Automation Magazine - June 2017 - 67
IEEE Robotics & Automation Magazine - June 2017 - 68
IEEE Robotics & Automation Magazine - June 2017 - 69
IEEE Robotics & Automation Magazine - June 2017 - 70
IEEE Robotics & Automation Magazine - June 2017 - 71
IEEE Robotics & Automation Magazine - June 2017 - 72
IEEE Robotics & Automation Magazine - June 2017 - 73
IEEE Robotics & Automation Magazine - June 2017 - 74
IEEE Robotics & Automation Magazine - June 2017 - 75
IEEE Robotics & Automation Magazine - June 2017 - 76
IEEE Robotics & Automation Magazine - June 2017 - 77
IEEE Robotics & Automation Magazine - June 2017 - 78
IEEE Robotics & Automation Magazine - June 2017 - 79
IEEE Robotics & Automation Magazine - June 2017 - 80
IEEE Robotics & Automation Magazine - June 2017 - 81
IEEE Robotics & Automation Magazine - June 2017 - 82
IEEE Robotics & Automation Magazine - June 2017 - 83
IEEE Robotics & Automation Magazine - June 2017 - 84
IEEE Robotics & Automation Magazine - June 2017 - 85
IEEE Robotics & Automation Magazine - June 2017 - 86
IEEE Robotics & Automation Magazine - June 2017 - 87
IEEE Robotics & Automation Magazine - June 2017 - 88
IEEE Robotics & Automation Magazine - June 2017 - 89
IEEE Robotics & Automation Magazine - June 2017 - 90
IEEE Robotics & Automation Magazine - June 2017 - 91
IEEE Robotics & Automation Magazine - June 2017 - 92
IEEE Robotics & Automation Magazine - June 2017 - 93
IEEE Robotics & Automation Magazine - June 2017 - 94
IEEE Robotics & Automation Magazine - June 2017 - 95
IEEE Robotics & Automation Magazine - June 2017 - 96
IEEE Robotics & Automation Magazine - June 2017 - Cover3
IEEE Robotics & Automation Magazine - June 2017 - 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