# Leveraging PointNet and PointNet++ for Lyft Point Cloud Classification
Challenge

Rajat K. Doshi  Yale University, Department of Computer Science

###### Abstract

This study investigates the application of PointNet and PointNet++ in the
classification of LiDAR-generated point cloud data, a critical component for
achieving fully autonomous vehicles. Utilizing a modified dataset from the
Lyft 3D Object Detection Challenge, we examine the models’ capabilities to
handle dynamic and complex environments essential for autonomous navigation.
Our analysis shows that PointNet and PointNet++ acheived accuracy rates of
79.53% and 84.24%, respectively. These results underscore the models’
robustness in interpreting intricate environmental data, which is pivotal for
the safety and efficiency of autonomous vehicles. Moreover, the enhanced
detection accuracy, particularly in distinguishing pedestrians from other
objects, highlights the potential of these models to contribute substantially
to the advancement of autonomous vehicle technology.

##  1 Introduction

Autonomous vehicles (AVs) represent a transformative advance in modern
transportation, promising significant changes in mobility and safety. The
development of Level 5 fully autonomous vehicles hinges critically on the
capacity to effectively interpret complex, dynamic environments in real-time.
LiDAR technology, which equips AVs with the ability to generate detailed
three-dimensional point cloud data, is pivotal in this context. These data
enable the classification, segmentation, and prediction of the movements of
various entities such as vehicles, cyclists, and pedestrians within the
vehicle’s vicinity Chen et al. (2020).

The fundamental challenge in scene interpretation lies in the classification
of objects from LiDAR-generated point clouds. Despite advancements in 3D
object detection via deep learning architectures utilizing representations
like polygon meshes and voxel grids, issues persist. Current methods exhibit
limited generalizability across different datasets and underperform on
benchmark datasets like ModelNet10, suggesting substantial room for
improvement in leveraging raw point cloud data Guo et al. (2020).

This project aims to address these challenges by focusing on optimizing model
performance for the classification of point clouds from the Lyft dataset,
which serves as a proxy for general autonomous vehicle scenarios. Our approach
entailed a comprehensive examination of real-world point cloud data to
identify and amend data pipeline inefficiencies, followed by an exploration of
advanced point cloud deep learning models, specifically PointNet Qi et al.
(2017a) and PointNet++. These models were developed to predict semantic
classes of point clouds, a critical step toward enabling fully autonomous
vehicular navigation.

##  2 Methods

###  2.1 Data Collection and Preprocessing

The dataset employed for this study was sourced from the Lyft 3D Object
Detection for Autonomous Vehicles Kaggle Challenge Maggie et al. (2019). It
comprises raw camera footage, LiDAR data, and high-definition semantic maps,
encompassing 180 scenes with approximately 25 seconds of footage each. This
extensive dataset, totaling around 120 GiB, includes 638,000 annotations
across both 2D and 3D dimensions for over 18,000 objects spread across nine
classes, such as cars, pedestrians, and bicycles.

Figure 1: Point Cloud Segmentation Preprocessing: during preprocessing, each
point cloud scene was spliced into smaller objects for the classification task
in this study. As you can see in this figure, a traffic lane scene is sliced
into multiple car point cloud objects.

Initial steps involved downloading the dataset and its corresponding SDK,
followed by conducting basic exploratory data analysis and visualizations to
understand the distribution and characteristics of the data. A significant
imbalance was observed in the class distribution, particularly with an
overrepresentation of cars. To address this, we modified the dataset to
achieve better class balance and generalizability by merging morphologically
similar objects and reducing the class count from nine to four: cars, trucks,
people, and bicycles. This step also involved implementing an upsampling
method to equalize the number of points per point cloud across all classes,
which helped regularize our models by preventing bias towards classes with
inherently larger point counts. Each point cloud in the final dataset was
adjusted to contain precisely 5,000 points, achieved through upsampling or
downsampling as necessary, mathematically represented as:

$N_{\text{adjusted}}=\min\left(\max(N_{i},5000),5000\right),$ (1)

where $N_{i}$ is the initial number of points in a point cloud.

###  2.2 Model Architectures and Implementation

####  2.2.1 PointNet Architecture

The first model, PointNet, is specifically designed to process point clouds
directly without the need for pre-processing into structured formats like
voxel grids or image collections, which can inflate data size and complicate
computations Qi et al. (2017a). PointNet addresses the challenge of handling
unordered point sets by employing symmetric functions that are invariant to
permutations of the input data. It also incorporates Spatial Transformer
Networks (STNs) to align inputs into a canonical space before feature
extraction, enhancing the model’s ability to learn invariant representations
to rigid-body transformations. This architecture includes multiple layers of
multilayer perceptrons (MLPs) with shared weights, enhancing its ability to
learn high-dimensional point embeddings. A max pooling layer then aggregates
these embeddings into a global shape feature, which characterizes the critical
structure of the input point cloud. Regularization is applied to the
transformation matrices to encourage conformal, distance-preserving mappings.

####  2.2.2 PointNet++ and Graph Neural Network Integration

PointNet++, an extension of the original PointNet, enhances the model’s
capability to capture local context around each point, a feature somewhat
neglected by its predecessor Qi et al. (2017b). It utilizes a hierarchical
approach similar to convolutional neural networks but adapted for irregular
point clouds. The process begins with defining local regions through farthest
point sampling, which strategically selects points to maximize coverage and
reduce redundancy. These points serve as centers for local clusters, formed
based on the proximity of neighboring points. The architecture then abstracts
features from these clusters progressively, allowing for the representation of
the point cloud at multiple resolutions Xiang et al. (2021). To implement this
architecture efficiently, we integrated it with a graph neural network
framework, enabling the model to interpret point clouds as graphs where points
are nodes connected based on their spatial relationships. This integration
facilitates effective learning of the interactions between points, crucial for
accurate classification.

By creating a Graph Neural Network with the PointNet++ layer, we are able to
simplify the model architecture and accelerate training and testing. From a
neural message passing scheme, the main PointNet++ operation can be seen as
neighborhood aggregation Qiu et al. (2021). Across all edges incident to a
source node, the distance vector between neighbors is concatenated to the
hidden features of the target in the previous layer. This tensor is passed to
a multilayer perceptron, and max-pooling outputs the hidden features for the
source at the next layer. By stacking multiple layers in addition to
aggregating points, this hierarchical process learns point cloud
classifications. The PointNet++ layer is included below:

$h^{(\ell+1)}_{i}=\max_{j\in\mathcal{N}(i)}\text{MLP}\left(h^{(\ell)}_{j};p_{j}-p_{i}\right)$

where

  * •

$h^{(\ell)}_{i}\in\mathbb{R}^{d}$ denotes the hidden features of point $i$ in
layer $\ell$

  * •

$p_{i}\in\mathbb{R}^{3}$ denotes the position of point $i$.

##  3 Results

The assessment of the PointNet and PointNet++ models was conducted through a
comprehensive set of metrics—accuracy, sensitivity, specificity, Area Under
the Curve (AUC), and confusion matrix analysis. These metrics were selected to
provide a holistic view of each model’s performance in classifying objects
within LiDAR data, which is crucial for the functionality of autonomous
vehicles.

Table 1: Summary of Model Performance Metric | PointNet | PointNet++
---|---|---
Accuracy | 79.53% | 84.24%
Sensitivity | 76% | 82%
Specificity | 72% | 75%
AUC | 0.78 | 0.83
False Positive Rate | 28% | 25%
Precision | 77% | 81%
F1-Score | 0.765 | 0.815

###  3.1 Performance Insights

The PointNet model achieved an accuracy of 79.53%. Despite its effectiveness
in classifying vehicles and pedestrians, the model had a specificity of 72%
and a false positive rate of 28%, indicating challenges in detecting smaller,
non-vehicle objects such as bicycles and traffic cones. These findings
highlight areas for potential refinement in the model’s classification
algorithms.

The PointNet++ model, an iteration on the PointNet architecture, showed
improved metrics with an accuracy of 84.24% and specificity of 75%. The
reduced false positive rate of 25% and a precision of 81% indicate
enhancements in the model’s ability to differentiate relevant objects from
background noise. The F1-score of 0.815 suggests a balanced improvement in
precision and recall, which is critical for applications in dynamic urban
environments.

Analysis for both models identified specific strengths and weaknesses.
PointNet tended to misclassify smaller objects as background, particularly in
low-contrast conditions such as dusk or dawn. PointNet++, with advanced
feature extraction capabilities, exhibited fewer misclassifications under
similar conditions.

Subclass analysis revealed that both models performed well in identifying
larger vehicles like buses and trucks, likely due to their distinctive and
larger shape features easily captured by LiDAR. In contrast, both models faced
difficulties with motorcycles and animals, which present smaller and more
variable LiDAR signatures.

##  4 Discussion

In this study, we presented a comprehensive evaluation of the PointNet and
PointNet++ models, focusing on their ability to classify objects within LiDAR
data for autonomous vehicle applications. The results indicated that while
both models are capable of identifying larger vehicles with high accuracy,
they struggle with smaller, non-standard objects like bicycles and animals.
This limitation is particularly evident in the lower specificity and higher
false positive rates reported for both models. Such inaccuracies are critical
as they could lead to inefficient or unsafe autonomous vehicle operations,
especially in cluttered urban environments.

The implications of these findings are significant for the future development
of autonomous driving technologies. To enhance the practical utility of
PointNet and PointNet++ models, further research should focus on improving
their sensitivity to smaller and less conventional objects. One potential
avenue for improvement could involve integrating these models with other
sensory data, such as radar and video, to create a more robust detection
system that compensates for the limitations observed in the sole use of LiDAR
data. Additionally, incorporating advanced training techniques like data
augmentation and adversarial training might help in reducing the models’
susceptibility to false positives and improving their overall reliability. By
addressing these challenges, we can move closer to realizing the full
potential of autonomous vehicles in safely navigating diverse and dynamic
environments.

## References

  * Chen et al. (2020) Siheng Chen, Baoan Liu, Chen Feng, Carlos Vallespi-Gonzalez, and Carl Wellington.  3d point cloud processing and learning for autonomous driving.  _CoRR_ , abs/2003.00601, 2020.  URL https://arxiv.org/abs/2003.00601.
  * Guo et al. (2020) Yulan Guo, Hanyun Wang, Qingyong Hu, Hao Liu, Li Liu, and Mohammed Bennamoun.  Deep learning for 3d point clouds: A survey, 2020.
  * Maggie et al. (2019) Christy Maggie, Niki Nikatos, Phil Culliton, Vinay Shet, and Vladimir Iglovikov.  Lyft 3d object detection for autonomous vehicles, 2019.  URL https://kaggle.com/competitions/3d-object-detection-for-autonomous-vehicles.
  * Qi et al. (2017a) Charles R. Qi, Hao Su, Kaichun Mo, and Leonidas J. Guibas.  Pointnet: Deep learning on point sets for 3d classification and segmentation, 2017a.
  * Qi et al. (2017b) Charles R. Qi, Li Yi, Hao Su, and Leonidas J. Guibas.  Pointnet++: Deep hierarchical feature learning on point sets in a metric space, 2017b.
  * Qiu et al. (2021) Shi Qiu, Saeed Anwar, and Nick Barnes.  Geometric back-projection network for point cloud classification, 2021.
  * Xiang et al. (2021) Tiange Xiang, Chaoyi Zhang, Yang Song, Jianhui Yu, and Weidong Cai.  Walk in the cloud: Learning curves for point clouds shape analysis, 2021.


# Leveraging Natural Load Dynamics with Variable Gear-ratio Actuators

Alexandre Girard1 and H. Harry Asada2 This work was supported by The Boeing
Company. 1 A. Girard is with the Department of Mechanical Engineering,
Universite de Sherbrooke, Qc, Canada.2 H. H. Asada is with Department of
Mechanical Engineering, Massachusetts Institute of Technology, Cambridge, MA,
USA.3 ©IEEE. Personal use of this material is permitted. Permission from IEEE
must be obtained for all other uses, in any current or future media, including
reprinting/republishing this material for advertising or promotional purposes,
creating new collective works, for resale or redistribution to servers or
lists, or reuse of any copyrighted component of this work in other works.
DOI:10.1109/LRA.2017.2651946

###### Abstract

This paper presents a robotic system where the gear-ratio of an actuator is
dynamically changed to either leverage or attenuate the natural load dynamics.
Based on this principle, lightweight robotic systems can be made fast and
strong; exploiting the natural load dynamics for moving at higher speeds
(small reduction ratio), while also able to bear a large load through the
attenuation of the load dynamics (large reduction ratio). A model-based
control algorithm to automatically select the optimal gear-ratios that
minimize the total actuator torques for an arbitrary dynamic state  and
expected uncertainty level is proposed. Also, a novel 3-DoF robot arm using
custom actuators with two discrete gear-ratios is presented. The advantages of
gear-shifting dynamically are demonstrated through experiments and
simulations. Results show that actively changing the gear-ratio using the
proposed control algorithms can lead to an order-of-magnitude reduction of
necessary actuator torque and power, and also increase robustness to
disturbances.

##  I INTRODUCTION

The transmission gear-ratio that couples an actuator to a load has a
significant effect upon the behavior of the actuator-load system. With a large
reduction ratio, the load-side dynamics has no significant effect because it
is attenuated by the factor of the square of the gear-ratio. The net load
acting on the actuator is mostly its own intrinsic load, including rotor
inertia and friction. In contrast, with a small reduction ratio or a direct
drive system [1], the behavior is usually dominated by the load-side dynamics
which consist of highly non-linear inertial and gravitational forces for
robotics manipulators. Sometime it can be advantageous to exploit the load-
side dynamics: gravity may push the robot in a desired direction; the robot
may coast with small dissipative torques induced at the actuator side; or the
robot joints become backdrivable to comply to an external force. In other
situations, however, it may be advantageous to isolate the actuators from the
load-side dynamics and external disturbances: using a large gear-ratio to bear
a large load or moving it slowly against gravity, for example.

This paper aims to explore the potentials of actuator transmissions that can
be switched dynamically to either attenuate or leverage the natural dynamics
of the system.  Here, the variable gear-ratio is used not merely for
increasing maximum torque and speed, but also to significantly alter the
dynamic properties, including load sensitivity, robustness, and
backdrivability. Exploiting the full potentials of variable gear-ratios, with
effective gearshift algorithms, entails a sound understanding of the effect of
actuator gear-ratios in diverse static and dynamic robotic contexts. In
section I-A, the principle of load leveraging and attenuation is delineated
for a simple 1-DoF manipulator, section I-B will discuss how this principle
can be exploited in various contexts of robotic applications, where bi-polar
load conditions must be dealt with despite actuator weight and power
constraints, and section I-C will discuss related works and technical
challenges. Section II will introduce a formal mathematical representation and
propose control algorithms to automatically select optimal gear-ratios for a
single DoF and multi-DoF systems. The advantage of actively changing the gear-
ratio are then illustrated with simulations in section III, and with
experiments using a custom robotic arm in section IV.

###  I-A Illustration of the principle for a 1-DoF manipulator

Fig. 1 illustrates a simplified 1-DoF robotic manipulator where an electric
motor is coupled to a pendulum through a gearbox with a variable gear-ratio
$R$.

Figure 1: Effect of the gear-ratio on the natural dynamics

As illustrated by phase portraits in Fig. 2, if $R$ is small then the dynamic
behavior of the system is dominated by the non-linear pendulum dynamics (Fig.
2a), but if $R$ is very large, the behavior is dominated by the intrinsic
inertia of the actuator, leading to the double-integrator behavior (Fig. 2b).

(a)  Gear-ratio $R$=1

(b)  Gear-ratio $R$=10

Figure 2: Phase portraits illustrating the dynamical behavior

The vector fields of Fig. 2 illustrate the evolution of the system with no
actuator torque. Suppose that we want to move from state A to state B on the
phase plane. Starting off state A with the gear-ratio of 1:1 brings the system
along the curved trajectory shown in Fig. 2a. Switching the gear-ratio at
state C to 1:10 will change the trajectory to the one in Fig. 2b, and bring
the system to the destination state B. Note that no actuator torque is
necessary for following this trajectory. A salient feature of actively
changing the gear-ratio is that a natural behavior, i.e. vector field, having
properties useful for moving in a desired direction can be selected to
minimize the necessary torque to apply to the system.

###  I-B Diverse Load Conditions

In many applications, as illustrated in Fig. 3, robotic systems encounter a
very wide range of load conditions: fast reaching motions where forces are
small (small gear-ratio is advantageous), and applying large forces at low
speed (large gear-ratio is advantageous).

Figure 3: Robotic systems encountering diverse load conditions; the load is
significantly small when the end-effector, legs, and fingers are moving
quickly through the air, while they have to bear large loads when in contact
with the environment or moving against gravity.

Lightweight small motors can meet those requirements when equipped with a
variable gear reducer [2]. In addition to weight-saving, advantages of
variable gear-ratio actuators (VGA) include improved efficiency and the wide
range of possible impedance reflected to the load side [3]. As illustrated in
Fig. 4, a leg can be made fast and backdrivable by selecting small gear-
ratios, or slow and capable of bearing a large load with a large gear-ratio.
Furthermore, a leg can be made stiff in one direction but fast in other
directions by selecting different gear-ratios for different axes.

Figure 4: Example of advantageous gear selections with a multi-DoF robot

Robots using lightweight VGA have the potential for achieving fast motions,
high load-bearing, compliance and high-impedance, as required by diverse load
conditions encountered by robotic systems. However, to truly exploit those
salient features of VGA, control laws to select dynamically gear-ratios based
on the current situation and task of the robot must be developed.

###  I-C Challenges and related works

This paper investigates the control schemes for robots using VGA, focusing on
intelligent gear-ratio selection. VGA differs from variable stiffness
actuators (VSA) that use a variable transmission placed between a compliant
element and the load [3].  Both VSA and VGA can vary the impedance reflected
to the load side, but only VGA has the advantage of improving power
transmission and efficiency by matching motor speed to the load speed (like a
car transmission). On the other hand, only VSA have the ability to store and
release potential energy in their compliant element. While VGA have been
studied extensively for automobile power-trains, they have not yet been fully
investigated in robotics, despite significant potential gains. Variable gear-
ratio transmissions for electric motors have been proposed for legged
locomotion [4], grasping robotic hands [5] , propulsion system [6] [7] and
actuation systems [2] [8] [9]. Some of those works address the issue of how to
change the gear-ratio, but there is no general approach to the high-level
control of automatically selecting the right gear-ratios for nonlinear,
coupled multi-DoF robotic systems.

From the control perspective, automating the gear-ratio selection in a robotic
context is a new and challenging problem. Gear-shifting is a very non-linear
process and the plant becomes a hybrid dynamical system if the usable gear-
ratios are a set of discrete values. In simple scenarios, the gear-ratio
selection can be based on simple principles. For instance, for a system
running at a steady speed, the best gear-ratio can be selected based on
efficiency. Alternatively, for rapid acceleration, the gear-ratio may be
selected based on the actuator-load inertia matching [10] [11]. Robots,
however, experiences diverse types of forces acting simultaneously. These
include gravity, friction, and inertial forces as well as Coriolis and
centrifugal forces. Hence, it is challenging to find a general control policy
for selecting gear-ratios for the multitude of dynamically interacting
actuators in the context of robotic systems.

Mixed-integer programming has been used to generate optimal open-loop
trajectories of a dynamical system with both a continuous torque and a
discrete gear-selection input variable [12]. However, open-loop trajectories
can be unstable and computation time is prohibitive. Dynamic programming was
used to generate feedback laws for torque and gear-ratio selection for a
1-axis system [13]. However, this technique does not scale to high-dimensional
robots and is not applicable to trajectory following. Here in this paper, a
model-based approach is proposed, with the advantage of: scaling to high-
dimensional robotic systems, adapted for trajectory following tasks and can
use a measure of uncertainty for improved robustness. Given a robot model, a
reference trajectory, and optionally known bounds on the uncertainty, feedback
laws for gear-ratios selection and motor torques are synthesized. The focus
will be on systems where the gear-ratio options are limited to a discrete set,
but the proposed principle and control algorithms are also applicable to
robots with continuously variable transmissions (CVT).

##  II Control

The proposed control architecture, shown in Fig. 5, consists of three
hierarchical control loops. First, a trajectory generation algorithm
synthesizing dynamic trajectories that meets performance requirements for
reaching desired states. Second, a closed-loop trajectory following controller
consisting of a feedback law computing actuator torques $\boldsymbol{\tau}$
and gear-ratios $R$ based on the measured full state of the robot. Finally at
the lowest level, independent actuator controllers executing low-level
hardware commands in response to given torques and gear-ratio set-points.

Figure 5: Proposed hierarchical control architecture

The main scope of this paper is the trajectory following controller: the
design of a feedback law optimizing gear-ratios and computing torque commands
in real-time. For the trajectory generation, motion planning algorithms can be
applied to optimize the overall trajectory [14]. The low-level controllers
would be specific to the type of actuator used in the system. It is assumed
that they would track the desired torque/force and handle the gear-shifting
process when receiving a new gear-ratio set-point.

###  II-A Modeling

$H$ | : | External inertia matrix
---|---|---
$D$ | : | External damping matrix
$C$ | : | External Coriolis/Centrifugal forces matrix
$\boldsymbol{g}$ | : | External gravitational vector
$\boldsymbol{d}$ | : | External disturbances vector
$R$ | : | Gear-ratio matrix
$I$ | : | Intrinsic actuator inertia matrix (diagonal)
$B$ | : | Intrinsic actuator damping matrix (diagonal)
$\boldsymbol{\tau}$ | : | Electromagnetic motor torques vector
$\boldsymbol{q}$ | : | Joint coordinates position vector
$\boldsymbol{w}$ | : | Actuator coordinates velocity vector
$J$ | : | task-space coordinates / joint coordinates jacobian matrix
$\boldsymbol{f}$ | : | Net transmitted forces vector (joint coordinates)
$\boldsymbol{\tau}^{\prime}$ | : | Net transmitted forces vector (actuators coordinates)
$\boldsymbol{\tau}_{I}$ | : | Sum of intrinsic forces vector
$\boldsymbol{\tau}_{E}$ | : | Sum of extrinsic forces vector
TABLE I: Nomenclature

First, a generic 1-DoF robot with a variable transmission is considered for
simplicity. If the actuator’s intrinsic resistive forces $\tau_{I}$ are
approximated to a linear quantity, the equations of motion (EoM) can be
written as:

$\displaystyle\underbrace{\left[H\ddot{q}+D\dot{q}+g(q)\right]}_{\tau_{E}(\ddot{q},\dot{q},q)}$
$\displaystyle=R\tau-R^{2}\underbrace{\left[I\ddot{q}+B\dot{q}\right]}_{\tau_{I}(\ddot{q},\dot{q})}$
(1) $\displaystyle\tau$
$\displaystyle=\frac{\tau_{E}(\ddot{q},\dot{q},q)}{R}+R\;\tau_{I}(\ddot{q},\dot{q})$
(2)

where the effect of the gear-ratio can be seen clearly; increasing $R$
attenuates the external dynamic terms $\tau_{E}$ but amplify the intrinsic
actuator losses $\tau_{I}$ for a given trajectory.

Variable gear-ratios can be modeled as variable transformer elements, using
the bond-graph terminology. Fig. 6 shows a bond-graph representation of the
model.

Figure 6: Model of a 1-DoF robot with a variable gear-ratio actuator

To generalize the above model to an $n$-DoF system with $n$ actuators, the
load-side dynamics is considered as a generic form of manipulator dynamics
where each port is connected to an independent motor through a network of
transformers, as shown by Fig. 7. The network of transformers can be view as a
type of coordinate transformation relating effort (force or torque) and flow
(velocity or angular velocity) on the load side
($\boldsymbol{f}$,$\dot{\boldsymbol{q}}$) to those on the actuator output side
($\boldsymbol{\tau}^{\prime}$,$\boldsymbol{w}$):

$\displaystyle\boldsymbol{f}=R^{T}\boldsymbol{\tau}^{\prime}\quad\quad
R\dot{\boldsymbol{q}}=\boldsymbol{w}$ (3)

where $R$ is a $n$ by $n$ matrix consisting of all the transformer ratios. The
EoM are then given by:

$\displaystyle\underbrace{H\boldsymbol{\ddot{q}}+C\boldsymbol{\dot{q}}+D\boldsymbol{\dot{q}}+\boldsymbol{g}}_{\boldsymbol{\tau}_{E}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}},\boldsymbol{q})}=R^{T}\underbrace{\left[\boldsymbol{\tau}-I\boldsymbol{\dot{w}}-B\boldsymbol{w}\right]}_{\boldsymbol{\tau}^{\prime}}$
(4)

Note that, in the case of locomotion or manipulation where the robot interacts
with the environment by physically contacting it, the dynamic model
$\boldsymbol{\tau}_{E}$ must reflect the contact conditions, either by
computing contact forces using constraint equations or by formulating
$\boldsymbol{\tau}_{E}$ as a hybrid dynamical system. In most practical cases,
each actuator has its independent variable transmission and, thereby, the $R$
matrix will be diagonal and each diagonal value can be selected independently.
Assuming this situation, the EoM can be simplified to a form, similar to the
scalar case, illustrating the effect of the gear-ratios matrix $R$ on the
behavior:

$\displaystyle\boldsymbol{\tau}$
$\displaystyle=R^{-1}\underbrace{\boldsymbol{\tau}_{E}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}},\boldsymbol{q})}_{\text{External
load
dynamics}}+R\underbrace{\boldsymbol{\tau}_{I}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}})}_{\text{Intrinsic
losses}}$ (5) $\displaystyle\boldsymbol{\tau}_{I}$ $\displaystyle\triangleq
I\boldsymbol{\ddot{q}}+B\boldsymbol{\dot{q}}$ (6)

Figure 7: Model of a $n$-Dof robot with variable actuator-joint coupling

The main assumption of the proposed model is that gear-ratios are considered
as independent control inputs, neglecting all the dynamics and delays
associated with the transition of gear-ratios. Physically this implies that
the kinetic energy of the system may be discontinuous at a gear-shift since
the energy necessary for the transition is not considered. In the case of a
car transmission for instance, this model would not keep track of the energy
used for accelerating or braking the engine during the synchronization
process. This model can be used if the gear-shift process is fast compared to
the dynamics of the robots and if the energetic losses due to the gear-shift
are negligibly small. In addition this model also assumes that all motor
rotors are in an inertial reference frame, neglecting gyroscopic effects,
which may be induced when the axes of motor rotors are rotated.

###  II-B Optimal gear-ratio along a trajectory

This section analyzes the optimal gear-ratio at each instant along a known
trajectory. The two main advantages of changing gear-ratio are 1) lowering the
necessary torque to follow a trajectory and 2) modifying the effective
impedance reflected on the environment. Optimization for reducing torque can
be done by minimizing $\boldsymbol{\tau}^{T}\boldsymbol{\tau}$ at each point
along the trajectory. Optimization for reflected impedance can be done by
minimizing the difference between desired task-space impedance and the actual
one, which is directly affected by the matrix $R$. For instance, the end-point
inertia matrix contains the gear-ratios:

$\displaystyle
M=[J(\boldsymbol{q})^{T}]^{-1}\big{[}\underbrace{R^{T}IR}_{\text{Actuator
contribution}}+H(\boldsymbol{q})\big{]}J(\boldsymbol{q})^{-1}$ (7)

Another point of practical importance is that rotor speeds should be
constrained to be lower than their maximum velocity. This is to avoid
infeasible gear shifts. For example, attempting to shift to a low gear at an
extremely high speed is impossible. The best gear-ratios R*, according to
those criteria, can be computed by solving the following optimization problem:

$\displaystyle
R^{*}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}},\boldsymbol{q})$
$\displaystyle=\operatornamewithlimits{argmin}\limits_{R}\left[\boldsymbol{\tau}^{T}\boldsymbol{\tau}+\alpha\|M_{d}-M\|\right]$
(8) $\displaystyle\text{s.t.}\quad
R\dot{\boldsymbol{q}}\leq\boldsymbol{w}_{max}$ (9)

where $\alpha$ is a parameter to set the trade-off between minimizing motor
torques and matching the desired end-point inertia $M_{d}$. Analytical
solutions can be found when considering the minimal torque criterion only and
linear intrinsic resistive forces. The optimal gear-ratio for a 1-DoF system,
at a given instant on a trajectory, is given by

$\displaystyle R^{*}$
$\displaystyle=\operatornamewithlimits{argmin}\limits_{R}\left[\tau^{2}\right]=\sqrt{\left|\frac{\tau_{E}(\ddot{q},\dot{q},q)}{\tau_{I}(\ddot{q},\dot{q})}\right|}$
(10)

Similarly for multi-DoF systems, if $R$ is a diagonal matrix, the optimal
gear-ratios can be obtained independently for each axis:

$\displaystyle[R^{*}]_{ii}=\sqrt{\left|\frac{[\boldsymbol{\tau}_{E}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}},\boldsymbol{q})]_{i}}{[\boldsymbol{\tau}_{I}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}})]_{i}}\right|}$
(11)

Note that large gravitational forces or contact forces, only present in
$\boldsymbol{\tau}_{E}$, will usually lead to larger optimal gear-ratios,
unless they cancel out other forces in a way that makes
$\boldsymbol{\tau}_{E}$ smaller. If inertial or viscous forces, present both
in $\boldsymbol{\tau}_{E}$ and $\boldsymbol{\tau}_{I}$, dominate, then the
optimal gear-ratio will be a compromise such that extrinsic and intrinsic
forces are balanced, a form of impedance matching. The optimal gear-ratio
given by (11) includes both gravity, inertial and viscous forces as well as
all other effects, hence it can be applied to any arbitrary dynamic
situations.

###  II-C Uncertainty

Two observations are made regarding the effect of the gear-ratios on
disturbances. First, considering modeling errors and external forces on the
extrinsic side as unknown generalized forces $\boldsymbol{d}$, the EoM given
by eq. (5) becomes:

$\displaystyle\boldsymbol{\tau}$
$\displaystyle=R^{-1}\boldsymbol{\tau}_{E}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}},\boldsymbol{q})+R\boldsymbol{\tau}_{I}(\ddot{\boldsymbol{q}},\dot{\boldsymbol{q}})+R^{-1}\underbrace{\boldsymbol{d}}_{\text{Disturbances}}$
(12)

where it is assumed that the actuators are accurately modeled. Note that the
effect of the disturbances is inversely proportional to the gear-ratios, and
thereby attenuated when using large gear-ratios.

Second, large gear-ratios also decrease the sensitivity of the system to
uncertainty. The error of computed accelerations will be attenuated with large
gear-ratios because of the larger actuator inertia reflected to the extrinsic
side:

$\displaystyle\boldsymbol{\ddot{q}}_{e}$
$\displaystyle=\boldsymbol{\ddot{q}}-\boldsymbol{\ddot{q}}_{r}=\left[H+R^{T}I_{a}R\right]^{-1}\boldsymbol{d}$
(13)

Hence, selecting large gear-ratios makes the system less sensitive to
uncertainty on the extrinsic side.

###  II-D Trajectory following control algorithm

Figure 8: R* Computed Torque Controller illustrated with a block diagram

This section proposes feedback laws, to actively select gear-ratios based on
states and a reference trajectory.

####  II-D1 R* Computed Torque Control

The proposed closed-loop controller, shown in Fig. 8 with a block diagrams, is
based on the Computed Torque Control technique [15], but includes an
optimization step to compute and select the optimal gear-ratios. The idea is
as follow, first compute a necessary acceleration $\ddot{\boldsymbol{q}}_{r}$
to guarantee convergence on the trajectory. Then given the actual position
$\boldsymbol{q}$, actual speed $\dot{\boldsymbol{q}}$ and desired acceleration
$\ddot{\boldsymbol{q}}_{r}$ compute the optimal gear-ratios $R^{*}$, as
described previously for a known trajectory, and apply the corresponding
torques $\boldsymbol{\tau}^{*}$. The salient feature of the R* controller is
that the optimal gear-ratio is selected based on state-feedback, i.e. even in
situations not foreseen in the planner that generated the nominal trajectory.
For instance, if a disturbance pushes the robot in a state where the robot
faces a large gravitational force requiring a large gear-ratio, the controller
will automatically select it.

####  II-D2  Robust Control

In general Computed Torque Control is susceptible to modeling uncertainties
and disturbances. This section presents two approaches to improving
robustness: Adaptation and Sliding Mode Control.

##### Adaptation

If the uncertainty is structured as unknown model parameters in the extrinsic
dynamics, the term represented by $\boldsymbol{\tau}_{E}$, then traditional
adaptation schemes can be used for estimating the unknown parameters. Then, if
adaptation converge to the correct computed torque, then the computed best
gear-ratios will also converge to the true optimal gear-ratios:

$\displaystyle\hat{\boldsymbol{\tau}}_{E}\rightarrow\boldsymbol{\tau}_{E}\quad\Rightarrow\quad\hat{R}^{*}\rightarrow
R^{*}$ (14)

##### Sliding Mode Control

Alternatively, if the uncertainty (disturbances, noise and modeling errors) is
bounded, Sliding Mode Control can be applied to improving robustness.
Introducing intermediary variables defined as:

$\displaystyle\boldsymbol{q}_{e}=\boldsymbol{q}-\boldsymbol{q}_{d}\quad\quad\boldsymbol{s}=\dot{\boldsymbol{q}}_{e}+\lambda\boldsymbol{q}_{e}\quad\quad\boldsymbol{\ddot{q}}_{r}=\ddot{\boldsymbol{q}}_{d}-\dot{\boldsymbol{q}}_{e}$
(15)

the computed torque, eq. (5), is modified to the following sliding mode
control law:

$\displaystyle\boldsymbol{\tau}$
$\displaystyle=R^{-1}\boldsymbol{\tau}_{E}(\ddot{\boldsymbol{q}}_{r},\dot{\boldsymbol{q}},\boldsymbol{q})+R\boldsymbol{\tau}_{I}(\ddot{\boldsymbol{q}}_{r},\dot{\boldsymbol{q}})+R^{-1}Gsgn(\boldsymbol{s})$
(16)

Convergence to the desired trajectory, despite the uncertainty, can be
guaranteed using the Lyapunov function $V=\boldsymbol{s}^{T}\boldsymbol{s}$.
The sliding condition is guarantee [15], for any selected gear-ratios, if the
discontinuous gain is set to:

$\displaystyle G$
$\displaystyle=\left[H+R^{T}I_{a}R\right]diag(\boldsymbol{k})$ (17)
$\displaystyle k_{i}$
$\displaystyle>\max\left|\left(\left[H+R^{T}I_{a}R\right]^{-1}\boldsymbol{d}\right)_{i}\right|$
(18)

If the gear-ratio is selected to minimize the sliding mode torque, eq. (16),
instead of the computed torque, eq. (5), then naturally larger gear-ratio will
be selected in response to large uncertainty. For instance, for a 1-DoF case:

$\displaystyle R^{*}$
$\displaystyle=\operatornamewithlimits{argmin}\limits_{R}\left[\tau^{2}\right]=\sqrt{\left|\frac{\tau_{E}(\ddot{q}_{r},\dot{q},q)+|d|_{max}\,sgn(s)}{\tau_{I}(\ddot{q}_{r},\dot{q})}\right|}$
(19)

Hence, if no disturbance is expected ($|d|_{max}=0$) gear-ratio selection is
unaffected, but when large disturbances are expected ( $|d|_{max}$ is large)
torque minimization naturally leads to selecting large gear-ratios.

####  II-D3 Numerical Optimization

If the gear-ratios are limited to a few discrete choices, the gear-ratio
matrix $R$ is not diagonal or intrinsic actuator dynamics is non-linear, then
the optimization must be computed numerically. The minimum needed is to have a
model of the inverse dynamic, which could include any non-linearity, in the
form
$\boldsymbol{\tau}=f(\boldsymbol{\ddot{q}},\boldsymbol{\dot{q}},\boldsymbol{q},R)$.
In the situation of discrete gear-ratios, this lead to a combinatorial
optimization problems, adding a constraint on the gear selection in the form
$R\in\\{R_{1},R_{2},...,R_{l}\\}$ However, if the number of options $l$ is
reasonably small, then every possible options can be computed quickly.

####  II-D4 Heuristic approach to minimize switching

Because the control effort during gear-shifts is neglected in the model, using
the proposed controller can lead to rapid switching between gear-ratios in
certain situations. To avoid this undesirable behavior, it is proposed to add
hysteresis to the controller: the gear-ratio is only changed if the difference
of computed torque, between using the optimal and the previously selected
gear-ratio, is greater than a minimum torque threshold, and also if the
elapsed time since the last change is greater than a minimum delay. Ideally,
the trade-off between fast and slow switching should be set based on a measure
of how costly transitions are, which would be specific to the type of
mechanism used by the VGA.

###  II-E Examples of gear-selection in simple 1-DoF situations

##### Acceleration from rest

When a robot accelerates from rest with no viscous forces, in a configuration
where no gravity acts, the problem is reduced to impedance matching for two
inertial loads. The optimal gear-ratio minimizing the torque for a given
acceleration is the one for which the load inertia and the motor reflected
inertia are the same.

$\displaystyle
R^{*}=\sqrt{\left|\frac{H\ddot{q}_{r}}{I\ddot{q}_{r}}\right|}=\sqrt{\frac{H}{I}}$
(20)

##### Supporting gravity without moving

In the situation where the robot is not moving and fighting against gravity,
the largest possible gear-ratio is the optimal choice.

$\displaystyle R^{*}=\sqrt{\left|\frac{g}{0}\right|}\rightarrow\infty$ (21)

##### Resisting disturbances

In the situation where there is no gravity and the robot is not moving, but
disturbances are expected, minimizing the sliding mode torque (eq. (19)) would
also lead to the conclusion that the largest possible gear-ratio is the
optimal choice.

$\displaystyle
R^{*}=\sqrt{\left|\frac{0+|d|_{max}\,sgn(s)}{0}\right|}=\sqrt{\frac{|d|_{max}}{0}}\rightarrow\infty$
(22)

##  III Simulation Results

In this section, the advantages of dynamically changing the gear-ratios, using
the R* computed torque controller, are illustrated using simulations of two
robots: first a 1-DoF pendulum, then a 3-DoF arm. Both robots are considered
having VGA with two possible gear-ratios: 1:1 or 1:10. Reference low-torque
trajectories to reach target positions are computed offline using a sample-
based search algorithm [14]. The first simulated experiment uses the robot of
Fig. 1, but here considering dissipative forces in the actuators, with the
task of reaching the up-right position starting at the bottom. Fig. 9 shows
the robot tracking the reference low-torque trajectory, where at first the
robot accumulates energy, using the 1:1 gear-ratio, and then finishes the
motion using the 1:10 gear-ratio. When the gravitational forces are pushing
advantageous toward the trajectory the controller select the 1:1 gear-ratio,
but when it is advantageous to fight the intrinsic actuator dynamics instead,
the 1:10 gear-ratio is selected.

Figure 9: 1-DoF robot simulation: states and inputs trajectory

In the second experiment, a 3-DoF manipulator is tasked with going from
configuration A to configuration B with the 3D trajectory shown at Fig. 10.
For this robot the controller is actively selecting the best gear-ratios
matrix $R$ out of the possible $2^{3}=8$ options. Fig. 11 shows the control
inputs activity. During the initial falling-down phase, at around $t=1$, the
robot is using 1:1 gear-ratios for all actuators, leveraging gravitational
torques. In contrast, during the final lifting phase, at around $t=6$, the
robot is using 1:10 gear-ratios for all actuators.

Figure 10:  3-DoF robot simulation: 3D trajectory  Figure 11:  3-DoF robot
simulation: control inputs trajectory

To evaluate the performance gain of actively changing the gear-ratio,
simulations with fixed gear-ratios are conducted where a regular computed
torque controller tracks the same trajectories. Results are summarized in
TABLE II, in terms of maximum absolute torque, which relates to the required
size and weight of motors, and integral of torque squared, which relates to
power consumption. Active gear-ratio selection is found to greatly improve
both metrics, especially for the 3-DoF robot trajectory where the arm must
both achieve high-speeds and also sustain a constant gravitational load at the
final configuration. Note that in those simulations high-velocity with 1:10
reductions is inhibited by friction in the motors, no maximum rotor velocity
is enforced. For the 3-DoF trajectory, active gear-shifting is found to reduce
the maximum torque required by a factor two and the integral of the torque
square by a factor 10, compared to any of the fixed-gear options. Those
results show the potential of using variable gear-ratio transmissions for huge
improvements in terms of actuator size and power consumption. Moreover, here
in the simulations, the load was always the same manipulator in different
dynamic situations. As discussed in section I-B, if the load dynamics is
radically changing because of different contact situations with the
environment, the performance gain of changing the gear-ratio could be even
greater.

| Fixed gear | Fixed gear | Active gearshifting
---|---|---|---
| 1:1 | 1:10 | 1:1 or 1:10
Max Absolute Torque [Nm]
1-link robot | 15 | 88 | 12
3-link robot | 24 | 42 | 12
Torque squared integral $\int{(\boldsymbol{\tau}^{T}\boldsymbol{\tau})dt}$
1-link robot | 377 | 8133 | 226
3-link robot | 2774 | 3617 | 295
TABLE II: Required torque comparison

##  IV Experiment results

This section presents a novel robotic arm with variable gear-ratio actuators
and an experimental validation of the R* computed torque controller and the
sliding mode version.

###  IV-A Prototype presentation

Shown in Fig. 12, a 3-DoF robotic arm using variable gear-ratio actuators has
been designed and custom built. The variable gear-ratio actuators consist of
dual-speed dual-motor (DSDM) actuators, as shown in Fig. 13. Those actuators
have two discrete operating modes, one for high-speed operation, and the other
for low-speed, high-load operation, where the net gear-ratios are about
20-times different [2]. Also, the dual-motor architecture has the advantages
of allowing fast and seamless gear-shifts, supporting the modeling assumption
discussed in sec.II-A.

Figure 12: Prototype 3-DoF arm with variable gear-ratio actuators Figure 13:
Two speed (1:23 or 1:474) variable gear-ratio actuator prototype

###  IV-B Controller implementation

The control algorithms are implemented on a computer using ROS [16], the
trajectory generation algorithm and the R* Computed Torque controller are
written in Python. The computer is communicating over USB with Flexsea motor-
drivers [17] that handle the low-level current loops. The trajectory is
generated offline in advance and loaded in memory upon initialization. The
main R* control loop is running at a 500 Hz sampling rate. The low-level
actuator controllers, receiving the torque and gear-ratio set-points,
communicating with both motor drivers and handling the gear-shifting process
(see Fig. 5) use the algorithm described in [2]. Transition from one gear-
ratio to another are found to be consistently under 50 ms.

###  IV-C Experiments

First a trajectory following experiments using the last DoF of the robot only
is presented. A 1.5 Kg load is mounted on the end-effector, and the task is to
bring it from the bottom position ($q=-\pi$) to the up-right position ($q=0$)
using as little torques as possible. A search algorithm is used to find a low
torque trajectory reaching the goal, see Fig. 14. Then the R* Computed Torque
Controller is used to track the reference trajectory. The experimental results
are shown in Fig. 15.

Figure 14: Low torque reference trajectory found using a search algorithm
Figure 15: Experiment with the R* Computed Torque Controller

Results show that the robot is using its 1:23 gear-ratio to accumulate kinetic
energy by swinging the arm link back and forth. Also the R* controller selects
the 1:474 gear-ratio automatically to attenuate the load dynamics, when the
actuator has to force the robot to stay with the trajectory. Interestingly,
the reference trajectory was planned so the robot would accumulate enough
kinetic energy to swing straight up with the last swing. However, in the
experiment, the dissipative forces are greater than anticipated by the
planner, and the last swing is too small (the robot almost stop at $q=-0.9$ at
$t=2.6$ in Fig. 15). Then, the R* controller automatically engage the large
1:474 gear-ratio, to continue converging on the desired trajectory with much
smaller torques than those required if keeping using the 1:23 gear-ratio in
this situation (no momentum and a large gravitational force to overpower).
This illustrates that including the gear-ratio selection in the feedback loop
also increase the robustness of the system. Without the 1:474 gear-ratio
option, tracking would have failed as the computed torque with 1:23 in this
situation was greater than the maximum allowable motor torque.

Fig. 16 shows four additional experiments for demonstrating how disturbance
rejection can be improved by using the sliding mode version of the R*
controller. Here the controller is only given a simple fixed point-target in
all cases. First, when a low uncertainty bound is given to the controller, the
robot can reach its target when unloaded (a) but failed when an unknown (to
the controller) 0.4 Kg load is added to the end-effector (b). However, when a
larger uncertainty bound is given, the robot can reach its target in both
cases, unloaded (c) and loaded (d). Note that the discontinuous torque
required to guarantee convergence despite disturbances is greatly reduced when
down-shifting to a large gear-ratio at low speeds. For an improved
performance, smoothing techniques should be implemented to avoid exciting the
unmodeled high-frequency modes. Videos of all the experiments discussed above,
and additional demonstrations are available in the media attachment.

(a)  (b)  (c)  (d)

Figure 16: Experiments with sliding mode version of the R* controller

##  V CONCLUSION AND OUTREACH

This paper explored the idea of dynamically changing the gear-ratio of an
actuator to minimize necessary motor torques, minimize the power consumption,
and modulate the output impedance of a robot, which would benefit greatly many
mobile robotics applications. This paper main contribution is a model-based
control algorithm to automatically select the best gear-ratios for any dynamic
situation generalized to n-DoF fully actuated robotic systems. Also, a custom
lightweight 3-DoF robotic arm using variable gear-ratio actuators with two
discrete gear-ratio options is presented. The advantages of gear-shifts were
illustrated using simulations and experiments.

Since the idea of dynamically changing the gear-ratio of a robot actuators can
lead to potentially significant performance gains and is relativity unexplored
compared to other topics in the field of robotics, there is many aspects that
should be investigated further: how to best optimize trajectories for this
kind of hybrid system, how to best use the ability to change the reflected
mass of the robot for interaction tasks, how to use gear-shifting to improve
legged locomotion, addressing applications with fast dynamics where gear-shift
transition delays cannot be neglected, etc.

## References

  * [1] H. Asada and K. Youcef-Toumi, _Direct-Drive Robots: Theory and Practice_. MIT Press, May 1987.
  * [2] A. Girard and H. Asada, “A two-speed actuator for robotics with fast seamless gear shifting,” in _IEEE/RSJ Int. Conf. on Int. Robots and Systems (IROS)_ , Sept 2015, pp. 4704–4711.
  * [3] B. Vanderborght et al., “Variable impedance actuators: A review,” _Robotics and Autonomous Systems_ , vol. 61, no. 12, pp. 1601–1614, Dec. 2013.
  * [4] S. Hirose, K. Yoneda, K. Arai, and T. Ibe, “Design of prismatic quadruped walking vehicle TITAN VI,” in _Fifth Int. Conf. on Advanced Robotics_ , Jun. 1991, pp. 723–728 vol.1.
  * [5] Y. J. Shin, H. J. Lee, K.-S. Kim, and S. Kim, “A Robot Finger Design Using a Dual-Mode Twisting Mechanism to Achieve High-Speed Motion and Large Grasping Force,” _IEEE Transactions on Robotics_ , vol. 28, no. 6, pp. 1398–1405, 2012.
  * [6] H. Lee and Y. Choi, “A New Actuator System Using Dual-Motors and a Planetary Gear,” _IEEE/ASME Transactions on Mechatronics_ , vol. 17, no. 1, pp. 192–197, 2012.
  * [7] N. McKeegan, “Antonov’s 3-speed transmission for electric vehicles boosts efficiency by 15 percent,” Jul. 2011. [Online]. Available: http://www.gizmag.com/antonov-3-speed-transmission-ev/19088/
  * [8] S. Hirose, C. Tibbetts, and T. Hagiwara, “Development of X-screw: a load-sensitive actuator incorporating a variable transmission,” in _IEEE Int. Conf. on Robotics and Automation_ , vol. 1, 1999, pp. 193–199.
  * [9] K. Tahara, S. Iwasa, S. Naba, and M. Yamamoto, “High-backdrivable parallel-link manipulator with Continuously Variable Transmission,” in _IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)_ , Sep. 2011, pp. 1843–1848.
  * [10] H. Giberti, S. Cinquemani, and G. Legnani, “Effects of transmission mechanical characteristics on the choice of a motor-reducer,” _Mechatronics_ , vol. 20, no. 5, pp. 604–610, Aug. 2010.
  * [11] D. Z. Chen and L. W. Tsai, “The generalized principle of inertia match for geared robotic mechanisms,” in _IEEE Int. Conf. on Robotics and Automation (ICRA)_ , Apr. 1991, pp. 1282–1287 vol.2.
  * [12] M. Gerdts, “Solving mixed-integer optimal control problems by branch&bound,” _Optimal Control Applications and Methods_ , vol. 26, no. 1, pp. 1–18, Jan. 2005.
  * [13] A. Girard and H. H. Asada, “A practical optimal control approach for two-speed actuators,” in _2016 IEEE International Conference on Robotics and Automation (ICRA)_ , May 2016, pp. 4572–4577.
  * [14] S. M. LaValle, _Planning Algorithms_ , 1st ed. Cambridge ; New York: Cambridge University Press, May 2006.
  * [15] H. Asada and J.-J. E. Slotine, _Robot Analysis and Control_. John Wiley & Sons, 1986.
  * [16] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Ng, “ROS: an open-source Robot Operating System,” 2009.
  * [17] J. F. Duval and H. M. Herr, “FlexSEA-Execute: Advanced motion controller for wearable robotic applications,” in _IEEE Int. Conf. on Biomedical Robotics and Biomechatronics (BioRob)_ , Jun. 2016, pp. 1056–1061.