text:
\section{Introduction}
\IEEEPARstart{D}{ue} to the unilateral nature of feet-ground interaction, legged robots are prone to falling down during their maneuvers.
The most important factor in designing walking controllers is therefore to minimize the possibility of falling down even in face of strong perturbations.
To achieve stable walking, a controller can act on three different gait aspects: it can decide
where to put the feet (step adjustment), when to make a step (step timing adaptation), and how to move the robot's body to manipulate the ground reaction forces (center of pressure (CoP) modulation). Each of these aspects is subject to physical constraints and it is therefore important
to optimally modulate each of these variables.
State of the art walking pattern generators have mostly focused on the optimal modulation of the CoP (e.g. zero-moment point (ZMP) walking strategies), sometimes
in conjunction with foot-step placement or timing adaption. While such strategies afford
great flexibility in walking pattern generation, they implicitly assumes high control authority
on the end-effectors' CoP.

In this paper, we study the problem of optimal step location and timing
without explicit control of the feet CoP or the robot center of mass (CoM).
This case is relevant for biped robots with no or limited control authority on
their CoP: robots with passive ankles, small feet or point feet. It is also
of interest for other robots, in order to relax the control
constraints on the CoP associated to more traditional preview control algorithms.

\subsection{Realtime walking pattern generators}
Generating walking patterns considering the full robot dynamics
allows to reason about multi-contact interactions on complex surfaces \cite{tassa2012synthesis,mordatch2012discovery,lengagne2013generation,herzog2015trajectory,herzog2016structured,carpentier2016A,khadiv2017optimal,winkler2018gait}.
However, this results in high dimensional, non-convex and computationally complex algorithms, therefore limiting their applicability for real-time walking control.
To date, most successful approaches for real-time walking control have mostly considered linear models of the CoM dynamics and especially the linear inverted pendulum model (LIPM) \cite{kajita20013d}.

Leveraging analytical solutions of the model, several approaches generate CoM trajectories consistent with a predefined ZMP trajectory \cite{harada2006analytical,morisawa2006biped,buschmann2007collocation}.
In these approaches, both the position and velocity of the CoM are restricted which constrains both divergent and convergent parts of the LIPM dynamics. In contrast, \cite{takenaka2009real} constrained only the divergent part of the CoM dynamics to generate a trajectory for the divergent component of motion (DCM) based on predefined footprints (ZMP trajectory).
Prior to \cite{takenaka2009real}, the divergent part of the LIPM dynamics was also used to explain human
walking characteristics under the name of extrapolated center of mass (XCoM) \cite{hof2008extrapolated}.
This concept is equivalent to the original Capture Point idea \cite{pratt2006capture}, i.e. the point on which the robot should step to come to a stop.
In these methods,
there is no feedback from the current state of the robot to adapt the CoM motion in the presence of disturbances. To circumvent this, \cite{englsberger2015three} proposed a feedback law to track a DCM trajectory. Although this controller can quickly react to disturbances, perfect DCM tracking assumes unconstrained CoP manipulation.

All of these walking pattern generators can be seen as variants of the same model predictive control (MPC) scheme \cite{wieber2016modeling}. One of the pioneering work relating walking pattern generation to optimal control was done by \cite{kajita2003biped}. They proposed a preview control method to generate CoM trajectories based on predefined ZMP trajectories. In this approach, feedback from the current roboot state can be used to recompute and adapt the motion online. \cite{wieber2006trajectory} improved the performance of this approach in the presence of relatively severe pushes, by constraining the motion of the ZMP inside the support polygon rather than predefining a desired ZMP trajectory. The resulting algorithm computes both ZMP and CoM trajectories respecting feasibility constraints at each control cycle.
In all these approaches a preview over several steps is considered for gait planning, but with fixed step locations and timing.

\subsection{Step adjustment and timing adaptation}
Explicit manipulation of the CoP to control the DCM or CoM imposes several restrictions on robot mechanics.
Indeed, robots with point contact feet \cite{hubicki2016atrias} or robots with passive ankles \cite{khadiv2016stepping} have very limited control authority, if any, on the foot CoP.
The modulation of the CoP is also very limited for robots with actuated ankles, due to the rather small foot support area and the limited amount of available ankle torque.
This is in contrast to step adjustment, which allows to select the next step location in a relatively large area compared to the support polygon.
It constitutes therefore a more significant tool for stabilizing biped walking.
Step adaptation algorithms \cite{englsberger2013three,englsberger2015three,khadiv2016stepping,diedam2008online,herdt2010online,herdt2010walking,feng2016robust} make walking pattern generators more robust against disturbances. However, in these methods step timing is never adapted. Indeed, it is necessary to fix step duration
to keep the problem convex over a sequence of several footsteps.

In \cite {feng2015online}, it was shown that using a combination of step location and timing adaptation increases significantly the basin of attraction for bipedal locomotion. \cite{missura2013omnidirectional} proposed an analytical method for computing nominal gait variables for a desired walking velocity, and an algorithm for adapting both step location and timing based on heuristics. \cite{castano2016dynamic} proposed an analytical method for step timing and foot placement adaptation based on the CoM state feedback, with a priority given to the sagittal gait. \cite{griffin2017walking} modified the analytical approach in \cite{englsberger2015three} by adjusting both step location and timing. They used step location and timing adjustment using heuristics to compensate for the DCM (or instantaneous capture point (ICP)) tracking error. Apart from adjusting step timing to robustify gaits against disturbances, \cite{park2006online,khadiv2017online} adapted the single support duration to negotiate soon or late landing of the swing foot using contact detection.

Step duration was also used as an optimization variables in \cite{aftab2012ankle,kryczka2015online}. However, these approaches result in non-convex optimization problems which are computationally expensive and do not guarantee convergence to a global minimum. \cite{maximo2016mixed} proposed an extension of the gait planning approach in \cite{herdt2010online} to adjust step duration. They related the problem through a mixed-integer quadratic program (MIQP) which has combinatorial complexity. Furthermore, \cite{caron2016make,caron2017dynamic} used timing adaptation to limit the acceleration of the swing foot, during walking on uneven terrains.

\subsection{Viability and capturability constraints}
Viability theory \cite{aubin1991viability} is an appealing framework to discuss the stability
of walking. The viability kernel includes all the states from which it is possible to avoid falling \cite{wieber2002stability}. Computing this kernel is generally not tractable but it has
been argued in \cite{wieber2008viability} that it is sufficient to limit an integral of the states of the system over several previewed steps to guarantee walking long-term stability \cite{wieber2016modeling}.
In general, viability can be guaranteed by setting a terminal condition on the states in a previewed number of steps as a sufficient condition \cite{takenaka2009real,englsberger2015three}, or by minimizing other forms of viability \cite{kajita2003biped,wieber2006trajectory,herdt2010online}.
As a result, the majority of walking pattern generators today consider several steps of preview to optimize walking as we discussed above.

Capturability, i.e. the ability to come to a stop after a certain number of steps, is a concept
developed in \cite{pratt2006capture}.
In \cite{koolen2012capturability}, an extensive capturability analysis is performed
for the LIPM and its extension. In particular, a bound for the infinite-step capturability
set is computed, which is equivalent to computing the viablity set of the LIPM.
It is a very valuable result, as this can guarantee viability without the need to
consider several walking steps,
therefore significantly simplifying the walking pattern generator problem.
To the best of our knowledge, this bound has never been used to
synthesize a walking pattern generator.

\subsection{Contributions of the paper}
In this paper, we use results characterizing the viability kernel of the LIPM \cite{koolen2012capturability}
to argue that it is sufficient to solely decide for the next step location and timing
to ensure walking stability from any viable state.
This means that adding a longer preview of steps does not
improve the capability of the LIPM to reject disturbances as long as both step timing and location
are adapted for the next step.
To the best of our knowledge, this insight has not been exploited in control synthesis,
as state of the art preview control approaches include stability constraints
over a preview of several steps despite it being unnecessary and
computationally more complex.

We use this insight to design a model predictive controller optimizing the next
step location and, most importantly, timing at every control cycle while guaranteeing walking stability
from any currently viable state. We then investigate the importance of step
timing adaptation for walking stability.
The algorithm is formulated as a quadratic program with a very low number of decision variables.
It contains at least an order of magnitude less decision
variables than state of the art algorithms such as \cite{herdt2010walking}. To the best
of our knowledge, it is the first algorithm able to adapt step timing and location
at the same time while keeping the problem convex.
Moreover, the algorithm does not rely on CoP modulation, which makes it applicable to any biped robots,
including robots with passive ankles and point feet.

We then propose a simple strategy to adapt online Cartesian swing foot trajectories
to follow the adapted step timing and location.
Extensive simulations on a full humanoid robot with passive ankles using hierarchical inverse
dynamics \cite{herzog2016momentum} demonstrate the capabilities of the approach for robots
with limited control authority on the CoP.
In particular, our experiments emphasize the importance of timing adaptation
during walking.
Interestingly, the full body controller does not require an explicit control of the CoP nor of
the CoM horizontal motion. As a result, our approach allows the robot to handle a significant amount of disturbances including external pushes and foot slippage.

This paper extends our preliminary work \cite{khadiv2016step} with a discussion
on the properties of our algorithm with respect to viability. We study the influence of timing
adaptation for disturbance recovery. In particular, we present more extensive simulation experiments
of a full humanoid robot with passive ankles including push and foot slippage experiments.

\subsection{Organization of the paper}

Section \ref{Fundamentals} recalls fundamental results about the DCM and viability. Section \ref{Stepping controller} introduces the walking controller for optimal adjustment of step location and timing. Section \ref{Whole Body Control} describes the
integration of the walking controller in the whole-body controller. Section \ref{Abstract model simulation} shows extensive results for the LIP model and compares our controller with state of the art preview controllers. Section \ref{Full humanoid simulation} is dedicated to full humanoid simulations on various scenarios. We discuss the results and conclude in Section \ref{Discussion} and \ref{Conclusion}.

\section{Problem formulation and viability}\label{Fundamentals}
In this section, we recall previous results on the LIPM, the DCM and the viability of the model.
We also present a convenient change of variable, the DCM offset, to express the viability
constraint in a form convenient to synthesize our stepping controller.

The LIPM constrains motion of the CoM on a plane (horizontal plane for walking on a flat surface), by using a telescopic massless link connecting the CoP to the CoM \cite{kajita20013d}. The dynamics of this system may be formulated as
\begin{equation}
\label{LIPM}
\ddot{x} = \omega_0^2 (x-u_0)
\end{equation}
where $x \in \mathbb{R}^2$ is the CoM horizontal position (the vertical component has a fixed value $ z_0$), and $u_0=[CoP_x,CoP_y]^T$ is the CoP position on the floor. For point contact feet, $u_0$ is identical to the contact point. $\omega_0$ is the natural frequency of the pendulum ($\omega_0=\sqrt[]{g/z_0}$, where $g$ is the gravity constant and $z_0$ the CoM height).
Defining the DCM as $\xi=x+\dot{x}/\omega_0$, the LIPM dynamics can also be written as \cite{englsberger2013three}
\begin{subequations}
\label{DCM_CoM}
\begin{align}
&\dot{x} = \omega_0 (\xi-x) \label{DCM_CoM_1} \\
&\dot{\xi} = \omega_0 (\xi-u_0) \label{DCM_CoM_2}
\end{align}
\end{subequations}
Equation (\ref{DCM_CoM}) explicitly reveals the stable and unstable parts of the LIPM dynamics, where the CoM converges to the DCM (Eq. \eqref{DCM_CoM_1}) and the DCM is pushed away by the CoP (Eq. \eqref{DCM_CoM_2}).

By solving  (\ref{DCM_CoM_2}) as an initial value problem, the DCM motion based on the natural dynamics of
the LIPM is written
\begin{equation}
\label{initial_value}
\xi(t) = (\xi_0-u_0) e^{\omega_0 t}+u_0
\end{equation}
The DCM at the end of a step of duration $T$ is
\begin{equation}
\label{initial@T}
\xi_T = (\xi_0-u_0) e^{\omega_0 T}+u_0
\end{equation}

This representation is very convenient, as is sufficient to constraint the DCM motion without
considering the stable part to ensure stable walking, for example by constraining the DCM location
at the end of a specified time $\xi(T)$ as in \cite{englsberger2015three}.
In this case, a terminal condition (captured state) is set at the end of a predefined number of steps, and the desired DCM at the end of the current step is recursively computed.

This is not the only way to keep the DCM from diverging.
In fact, a legged robot can instantaneously change its CoP location $u_0$ by taking a step \cite{koolen2012capturability} in order to limit the DCM motion. This is for example the
approach taken in \cite{pratt2006capture}.
In \cite{koolen2012capturability}, it was shown that the $\infty$-step capturability region
was solely a function of the maximum step length and minimum step time. Therefore, any viable state
will remain viable as long as the next step timing and location satisfy this $\infty$-step capturability
constraint.
It is the approach we exploit in this paper.

\begin{figure}
\centering
\setlength{\belowcaptionskip}{0mm}
\includegraphics[clip,trim=7.3cm 19.5cm 6cm 4cm,width=8.5cm]{DCM}
\caption{A schematic view of the walking pattern showing the footprints, the DCM, and the DCM offset}
\vspace{-0.5em}
\label{DCM}
\end{figure}

\subsection{The DCM offset}
We first introduce the DCM offset
which is a convenient change of variable to synthesize controllers that
enforce a desired CoM average velocity. We also compute the maximum DCM offset bound that
preserves viability. It is defined as
\begin{equation}
\label{DCM_offset}
b=\xi_T-u_T
\end{equation}
where $u_T$ is the next step location and $\xi_T$ the DCM at the end of the step (Figure \ref{DCM}).
The LIPM solution can be written in terms of the next footprint location, the step duration and
the DCM offset by solving
Equation \eqref{DCM_CoM_2} as a final value problem
\begin{equation}
\label{final_value}
u_T = (\xi_{cur}-u_0) e^{\omega_0 (T-t)}+u_0-b  \quad ,  \quad  0 \leq t \leq T
\end{equation}
in which $\xi_{cur}$ is the current DCM of the robot.
Bounding the DCM offset at the end of a step will guarantee the viability of walking.
Furthermore, the DCM offset is convenient as it allows to also enforce a desired forward velocity.
Assume that a desired CoM average velocity is given by a desired step length $L$, width $W$
and a desired step duration $T$. The desired DCM offset in the sagittal and lateral directions
that achieve the desired velocity is \footnote{cf. Appendix A for the derivation details}
\begin{subequations}
\label{nominal_offset}
\begin{align}
&b_{x}=\frac{L}{e^{\omega_0 T}-1}\\
&b_{y}=(-1)^n\frac{l_p}{1+e^{\omega_0 T}}- \frac{W}{1-e^{\omega_0 T}}
\end{align}
\end{subequations}
where $l_p$ is the default step width and $n$ is an index that distinguishes left and right feet ($n=1$ when the right foot is stance, and $n=2$ when the left foot is stance). Note that $W$ is the deviation of the step width with respect to the pelvis width. In fact, this value shows how much the robot moves laterally, so we will call it the \textit{step width} (Figure \ref{DCM}).

\subsection{Viability bound on the DCM offset}
We now want to express the viability region for the LIPM model  \cite{aubin1991viability,wieber2002stability,wieber2008viability}
in terms of the DCM offset.
Viability is generally intractable but fortunately, it is possible to characterize these
bounds for the LIPM as it was first shown in \cite{koolen2012capturability} where the viability
was characterized in terms of the $\infty$-step capturability region (i.e. the region
of the DCM where the system remains capturable by an infinite number of steps).
It is written as
\begin{equation}
d_{\infty} = L_{max} \frac{e^{-\omega_0 T_{min}}}{1- e^{-\omega_0 T_{min}}} \label{eq:inf_step_capt}
\end{equation}
where $L_{max}$ and $T_{min}$ are the maximum step length and minimum step duration, respectively.

Equation \eqref{eq:inf_step_capt} allows to analyze the viability of the current state of the system
but is not necessarily convenient to relate viability to the next step location and duration.
Moreover, the the best of our knowledge, this bound has not been used to ensure
walking stability. Indeed, walking pattern generators typically enforce walking stability by imposing
a terminal constraint after several preview steps \cite{wieber2016modeling}.

Now, we write the viability bounds in terms of the DCM offset.
We limit our analysis to the sagittal plane dynamics for forward walking (analysis of backward walking
is similar and the lateral direction analysis is given in Appendix B).
The maximum DCM offset is related to the maximum step length and minimum step duration as
\begin{equation}
\label{max_DCM}
b_{x,max}=\frac{L_{max}}{e^{\omega_0 T_{min}}-1}
\end{equation}
We show now that this maximum offset also characterize viable and non-viable states.
We consider two cases: I) if the DCM offset is larger than $b_{x,max}$, we show that all possible choices of step timing and location lead to its divergence and II) we show that for DCM offsets smaller than $b_{x,max}$, there exists at least one combination of step timing and location that keeps the DCM from diverging.
\paragraph*{Case I} If the DCM offset is larger than $b_{x,max}$ at the start of a step then
\begin{equation}
\label{DCM_cand}
\xi_{x,0}-u_{x,0}=\frac{L_{max}}{e^{\omega_0 T_{min}}-1}+\epsilon
\end{equation}
where $\epsilon$ is an arbitrary positive number. Using Equations \eqref{initial@T}, \eqref{DCM_offset} and \eqref{DCM_cand}, the DCM offset at the end of the step is
\begin{equation}
\label{DCM_end_viable}
b_x = ( \frac{L_{max}}{e^{\omega_0 T_{min}}-1}+\epsilon ) e^{\omega_0 T}-(u_{x,T}-u_{x,0})
\end{equation}
Substituting $u_{x,T}-u_{x,0}=L_{max}$ and $T=T_{min}$, the minimum realizable offset $b_x$ is therefore
\begin{equation}
\label{DCM_min}
b_{x}=\frac{L_{max}}{e^{\omega_0 T_{min}}-1}+\epsilon \: e^{\omega_0 T_{min}}
\end{equation}
Comparing Equations \eqref{DCM_cand} and \eqref{DCM_min}, we see that the minimum realizable DCM offset at the end of the step increases by $e^{\omega_0 T_{min}}$.
A sequence of steps will therefore result in a divergent geometric series with common ratio $e^{\omega_0 T_{min}}$. Therefore, all possible choices of step location and timing starting from a DCM offset larger than $b_{x,max}$ lead to divergence (i.e. a fall).
\paragraph*{Case II} If the DCM offset is smaller than $b_{x,max}$ at the start of a step then
\begin{equation}
\label{DCM_less}
\xi_{x,0}-u_{x,0}\leq \frac{L_{max}}{e^{\omega_0 T_{min}}-1}
\end{equation}
Using Equations \eqref{initial@T}, \eqref{DCM_offset} and \eqref{DCM_less}, we obtain the following constraint on the DCM offset
\begin{equation}
\label{DCM_end_nonviable}
b_x \leq ( \frac{L_{max}}{e^{\omega_0 T_{min}}-1} ) e^{\omega_0 T}-(u_{x,T}-u_{x,0})
\end{equation}
Selecting the next step position and timing as $u_{x,T}-u_{x,0}=L_{max}$ and $T=T_{min}$, we find
\begin{equation}
\label{DCM_lim}
b_{x} \leq \frac{L_{max}}{e^{\omega_0 T_{min}}-1}
\end{equation}
Comparing Equations \eqref{DCM_less} and \eqref{DCM_lim}, we see that starting from a state satisfying  Equation \eqref{DCM_less}, there exists at least one choice of step position and timing that keeps the DCM offset bounded at the end of the next step: this state is viable.

\begin{remark}
The DCM offset bound is equivalent to the $\infty$-step capturability bound
derived in \cite{koolen2012capturability}. However, the DCM offset bound is particularly convenient to optimize the next step
location and timing in a walking controller that 1) enforce a desired CoM velocity and
2) guarantees viability, which we present in the next section.
\end{remark}

\section{Stepping controller}\label{Stepping controller}
The stepping controller is comprised of three stages depicted in Figure \ref{block_diagram}.
First, we compute nominal values for the step location, step duration, and the DCM offset for a desired walking velocity.
Second, these nominal values are used to compute optimal desired step duration and location at each control cycle. Finally, step duration and location are exploited to constantly adapt swing foot trajectories that are then used by a whole body controller to generate walking (Section \ref{Whole Body Control}).
\begin{figure}
\centering
\includegraphics[clip,trim=7cm 16.5cm 6.9cm 2.9cm,width=.36\textwidth]{block_2}
\caption{Block diagram of the walking algorithm. Refer to Section \ref{Stepping controller} for a detailed description of each component.}
\vspace{-1.5em}
\label{block_diagram}
\end{figure}
\subsection{First stage: nominal values for stepping}
In the first stage, we use the procedure described in \cite{khadiv2016step} to find gait variables consistent with a desired walking velocity. In fact, in this stage we aim to find a desired set of step length and width as well as step duration that satisfies the robot and environment constraints. Hence, the problem is to find the nominal step length $L_{nom}$, step width $W_{nom}$, and step duration $T_{nom}$, subject to kinematic and dynamic constraints
\begin{align}
\label{ineq&eq}
&v_x = \frac{L_{nom}}{T_{nom}}, \qquad v_y = \frac{W_{nom}}{T_{nom}}\nonumber \\
&L_{min} \leq L_{nom} \leq L_{max}\\
&W_{min} \leq W_{nom} \leq W_{max} \nonumber \\
&T_{min} \leq T_{nom} \leq T_{max}\nonumber
\end{align}
where $v_x$ and $v_y$ are the desired average walking velocities in sagittal and lateral directions.
The step location bounds, $L_{min}$, $L_{max}$, $W_{min}$ and $W_{max}$, are decided by the user and
result from a combination of the robot (limited step length and width) and environment (limited area for stepping) limitations. The minimum step timing limits the acceleration of the swing foot and the maximum step timing limits slow stepping.

There are several possible combinations of step length and time that achieve a desired CoM velocity.
Here we compute the gait nominal values such that they are as far as possible from boundaries
\begin{align}
\label{nominal_values}
&T_{nom}=\frac{B_l+B_u}{2}\nonumber\\
&L_{nom}=v_x(\frac{B_l+B_u}{2})\\
&W_{nom}=v_y(\frac{B_l+B_u}{2})\nonumber
\end{align}
where we chose (cf. \cite{khadiv2016step} for more details)
\begin{align}
& B_l = \max \{\frac{L_{min}}{|v_x|}, \frac{W_{min}}{|v_y|}, T_{min} \} \quad,\quad v_x,v_y \neq 0\nonumber\\
& B_u = \min \{\frac{L_{max}}{|v_x|}, \frac{W_{max}}{|v_y|}, T_{max} \} \quad,\quad v_x,v_y \neq 0 \nonumber
\end{align}
Notice that we use $B_l = T_{min}$ and $B_u =T_{max}$, when $v_x,v_y = 0$. We can then compute the desired DCM offsets corresponding to these nominal values using Equation \eqref{nominal_offset}.

\subsection{Second stage: online foot location and timing adaptation}
The second stage of the algorithm adapts the gait characteristics based on the DCM measurement at each control cycle (typically 1KHz on a torque controlled robot) by using the step length, width and duration nominal values
to achieve a desired CoM velocity.
The algorithm computes step location and timing as close as possible to the nominal values while enforcing viability constraints.

The LIPM solution can be written in terms of the next footprint location, the step duration, and the DCM offset
using Equation \eqref{final_value}.
In order to have a linear relation between timing and step location, we use the following exponential
transformation for the step timing
\begin{equation}
\label{variable_changing}
\tau=e^{\omega_0T} \Longrightarrow T=\frac{1}{\omega_0} log(\tau)
\end{equation}
Equation \eqref {final_value} is now linear in the decision variables $\tau$, $b$, $u_T$
\begin{equation}
\label{linear_equality}
u_T - (\xi_{mea}-u_0) e^{-\omega_0 t} \tau+b=u_0 \quad , \quad 0 \leq t \leq T
\end{equation}
here $t$ is the time elapsed since the beginning of the swing phase.
The actual step duration is recovered through the logarithmic transformation in Equation \eqref{variable_changing}.
We can now write the step adaptation problem as a quadratic program
\begin{align}
\label{QP}
\underset{u_{T}, \tau, b, \psi}{\text{min.}} \alpha_1 \Vert u_{T}- \begin{bmatrix} L_{nom}\\W_{nom}\end{bmatrix}  \Vert^2 & + \alpha_2 |\tau-\tau_{nom}|^2 \nonumber\\
 + \alpha_3 \Vert b-\begin{bmatrix} b_{x,nom}\\b_{y,nom}\end{bmatrix} \Vert^2&
 + \alpha_4  ||\psi||^2
 \nonumber\\
\text{s.t.} \qquad \begin{bmatrix} L_{min}\\W_{min} \end{bmatrix}\leq u_T \leq&  \begin{bmatrix} L_{max}\\W_{max} \end{bmatrix}\nonumber\\
e^{\omega_0 T_{min}}\leq \tau \leq&  e^{\omega_0 T_{max}}\\
u_T+b=(\xi_{mea}-u_0)& e^{-\omega_0 t}\tau+u_0       \nonumber\\
 \begin{bmatrix} b_{x,min}+ \psi_1\\b_{y,max,out}+\psi_3 \end{bmatrix}\leq b \leq &\begin{bmatrix} b_{x,max}+\psi_2\\b_{y,max,in}+\psi_4 \end{bmatrix} \nonumber
\end{align}
where the last inequality is the viability condition, which is treated as a soft constraint
using the slack vector $\psi=[\psi_1 \, \psi_2 \, \psi_3 \, \psi_4]^T$ (cf. Appendix B for $b_{y,max,in}$ and $b_{y,max,out}$ definitions).

In practice, we choose a very high $\alpha_4$
to give the highest priority to the constraint while guaranteeing that the program will
always return a solution even if viability cannot be maintained \footnote{The viability constraint could be strictly enforced with a lexicographic optimization approach but it makes little difference in practice with high $\alpha_4$.}.
This program finds step duration, location and DCM offset as close as possible to the nominal values while enforcing viability as a soft constraint.
In the following we also use a large weight for the nominal DCM offset cost with respect to
step location and time costs to favor solutions close to the desired walking speed. With these weight choices, the optimizer automatically favor solutions that converge after fewer steps to the nominal walking speed without the need to specify any number of steps.
When the nominal DCM offset cannot be achieved, more than one step will be required to converge back to the nominal walking speed. Also, thanks to the viability constraint, it will recover from any disturbances as long as the robot is in a viable state.
We note that for the LIPM it is therefore not possible to find a stepping-based controller that performs better in terms of disturbance recovery.

\subsection{Third stage: Swing foot trajectory adaptation}\label{Swing foot trajectory adaptation}
As the step locating and timing varies at each control cycle, it is necessary to adapt the swing
foot trajectory accordingly at the same frequency. We propose here a method to adapt the swing
foot trajectory that is computationally simple while guaranteeing smooth swing foot motion.

In the directions horizontal to the ground, we consider fifth order polynomials such that the trajectories are continuous at the order of acceleration to ensure smooth control policies when used in an inverse dynamics control law \cite{herzog2016momentum}.
In the vertical direction, the problem is a bit more complicated.
Indeed, the swing foot height increases until the middle of the step and then decreases smoothly to land
on the ground.
In this case, one could use two fifth order polynomials for the two parts of the trajectory: one to connect the the prior state to the desired mid-swing foot height and the other to move the leg on the ground at the end of the swing phase.
However, such a straighforward approach has two important problems.
First, a change of step timing in the vicinity of the mid-time can cause a jump from the first spline to the second one. Second, a change of step timing in the second part generates unavoidable fluctuations in the vertical direction which may cause collision of the swing foot with the ground.

In this paper, we consider instead a 9th order polynomial for the whole step. The problem is to find the polynomials coefficients such that the swing foot height at the mid-time of the step is as close as possible to the desired height. Furthermore, the swing foot height during the step should be strictly positive and lower than a maximum height. The polynomial coefficients are found by solving the following quadratic program
\begin{align}
\label{QP_poly}
\underset{c_i}{\text{min.}} &\quad \Vert z(T/2)-z_{des} \Vert^2 \nonumber\\
\quad \text{s.t.} \quad & 0 \leq z(t) \leq z_{max}\nonumber\\
&z(0)=0 \quad z(t_{k-1})=z_{k-1} \quad z(T)=0\\
&\dot z(0)=0 \quad \dot z(t_{k-1})=\dot z_{k-1} \quad \dot z(T)=0\nonumber\\
&\ddot z(0)=0 \quad \ddot z(t_{k-1})=\ddot z_{k-1} \quad \ddot z(T)=0\nonumber
\end{align}
In this equation $z$ is the vertical component of the swing foot. By solving this equation, the polynomial coefficients $c_i$'s are obtained at each control cycle. Then, by evaluating the polynomial at the current time, the desired foot trajectory is obtained in real-time.

\section{Whole body control}\label{Whole Body Control}
We use a hierarchical inverse dynamics controller described in \cite{herzog2016momentum}
to control the desired swing foot motions computed in the previous section.
This controller allows to specify a hierarchy of desired task space behaviors and constraints
expressed as linear equalities and inequalities where it computes the optimal joint accelerations, contact forces and actuation torques to achieve them.
The equations of motion and actuation limits (i.e. physical consistency) are in the highest priority. The equations of motion can be written as
\begin{equation}
\label{dynamics_eq}
M(q) \ddot{q}+N(q,\dot{q})=S^T \tau+J_c^T \lambda
\end{equation}
where $M$ is the robot inertia matrix, $q \in \mathbb{R}^n \times SE(3)$ is the vector of generalized coordinates, and $N$ groups together the Coriolis, centrifugal and gravitational effects. $S$ represents the joint selection matrix, $\tau$ is the vector of actuation torques, $J_c$ is the contact Jacobian, and $\lambda$ is the vector of generalized contact forces. In the following, we describe the tasks and constraints used with the controller, the details of the controller can be found in \cite{herzog2016momentum}.

\subsection{Foot trajectory tracking}
The swing foot tracking task ensures that the desired motions computed in Section \ref{Swing foot trajectory adaptation} are properly executed on the robot. This task is written as
\begin{equation}
\label{swing_control}
J_{sw} \ddot{q}+\dot{J}_{sw} \dot{q}=\ddot{X}_d+K_d(\dot{X}_d-\dot{X})+K_p(X_d-X)
\end{equation}
where $X$ and $X_d$ are the actual and reference swing foot positions, and $J_{sw}$ is the swing foot Jacobian. $K_p$ and $K_d$ are diagonal gain matrices. It should be noted that we do not control the orientation of the swing foot because we will use a simulation of a robot with passive ankles and there is not enough
DOFs to control the orientation. For the stance foot, the task is to remain on the ground
\begin{equation}
\label{stance_control}
J_{st} \ddot{q}+\dot{J}_{st} \dot{q}=0
\end{equation}
where $J_{st}$ is the stance foot Jacobian. This task keeps the stance foot in a stationary contact with the ground surface.

\subsection{Center of Mass height tracking}
While it is not necessary to control the horizontal motion of the center of mass, we need a task to keep a desired center of mass height. We use the following task
\begin{equation}
\label{CoM_control}
J_{CoM} \ddot{q}+\dot{J}_{CoM} \dot{q}=K_p(z_d-z)-K_d \dot{z}
\end{equation}
where $J_{CoM}$ is the CoM height Jacobian, $z$ is the CoM height and $z_d$ is set to the CoM height used in the LIPM ($z_d=z_0$).

\subsection{Posture control}
For proper redundancy resolution and to ensure that the robot keeps a straight posture, we use the following  posture task
\begin{equation}
\label{joint_control}
\ddot{q}=K_p(q_d-q)-K_d \dot{q}
\end{equation}
where $K_p$ and $K_d$ are diagonal gain matrices of the actuated joint dimensions.
\subsection{Force regularization}
In the case of redundancy in actuation (e.g. during the double support phase), we ask the optimizer to compute contact forces as close as possible to desired forces that distribute the weight of the robot among the contacts while staying away from the friction cones limits. This task is not relevant during swing phases.

\subsection{Task hierarchy}
The hierarchical inverse dynamics controller offers to possibility to specify a hierarchy between
tasks, ensuring that tasks of higher priority are not disturbed by lower priority tasks.
The hierarchy used for all the experiments presented in this paper is specified in Table \ref{hierarchy}.
We give the highest priority to physical consistency and actuation limits.
The second rank enforces contact constraints for the stance foot and CoM height.
Again, we emphasize that the horizontal motion of the CoM is not controlled.
The swing foot control, which essentially generates the walking motions is in the third rank.
The last two ranks are used for the posture control and force regularization (which is only
relevant during double support phases).

\begin{table}[h]
\centering
\caption{Hierarchy of tasks used in the humanoid simulation.}
\begin{tabular}{lll}
\hline
Rank&Nr. of eq/ineq constraints&Constraint/Task\\
\hline
\texttt 1 & 6 eq & Newton Euler equations \\
\texttt   & 2{$\times$}4 ineq & Torque limits \\
\texttt 2 & 6 eq & Stance foot constraint \\
\texttt   & 1 eq & CoM height control \\
\texttt 3 & 3 eq & Swing foot control \\
\texttt 4 & 2{$\times$}4 eq & Posture Control \\
\texttt 5 & 2{$\times$}6 eq & Force regularization \\
\hline
\end{tabular}
\label{hierarchy}
\end{table}

\section{LIPM model simulation}\label{Abstract model simulation}
In this section, we present simulation results using a simulation of the LIPM model. First,
we study the push recovery capabilities of our controller and show that step timing adaptation
indeed significantly increases these capabilities.
Second, we compare our controller with a state of the art of preview control \cite{herdt2010online} in terms of robustness against pushes.

\subsection{Simulation results using the LIPM}
In the first scenario, we consider the LIPM abstraction of a robot walking with a set desired velocity.
Footsteps and swing foot trajectories are computed as described in Section \ref{Stepping controller}. During each step, the stance foot is considered as the point of contact of the LIPM. At the end of a step where the point of contact of the LIPM is changed, the foot index $n$ is changed. By changing the foot index, the feasible area is computed for the new step location.
We apply pushes on the robot and compare the recovery capabilities of our proposed controller to the case where no step timing adjustment is employed. The robot mass is 60 Kg and the CoM height is 80 cm, Table \ref{physical_properties} (the step location limitations are specified with respect to the stance foot). These properties correspond to a real Sarcos humanoid robot (Figure \ref{athena}).
\begin{table}[h]
\centering
\caption{Physical properties of the abstract model.\label{T1}}
\begin{tabular}{llll}
\hlin
Value&Description&min&max\\
\hlin
\texttt{$L$} & Step length & -50 $cm$ & 50 $cm$\\
\texttt{$W_{right}$} & Step width (right) & -10 $cm$ & 20 $cm$\\
\texttt{$W_{left}$} & Step width (left) & -20 $cm$ & 10 $cm$\\
\texttt{$T$} & Step duration & 0.2 $sec$ & 0.8 $sec$\\
\hlin
\end{tabular}
\label{physical_properties}
\end{table}

We compare our controller with one using fixed step duration $T_{nom}$.
In this scenario, we set a forward desired velocity ($v_x=1 m/s$). Based on the limitations specified in Table \ref{physical_properties}, the first stage of our proposed method generates the nominal step length and step duration (Equation \eqref{nominal_values}), as well as the nominal DCM offset (Equation \eqref{nominal_offset}). After four steps, the robot is pushed at $t=1.4 s$ to the right direction with a force $F=325 N$, during $\Delta t = 0.1 s$. We conduct two simulations to compare the results of fixed and optimized step duration. In case (a), we use Equation \eqref{final_value} for the step  adjustment, using the current DCM measurement. In case (b), we solve the optimization problem in Equation \eqref{QP} at each control cycle to generate the desired time and location of the next step.

Figure \ref{CoMCoP} illustrates the resulting trajectories for each case. As it can be observed in the top figures, for the case without timing adjustment (case (a)), the robot steps on the borders of feasible area to recover from the push. But, since in this case stepping can be realized only at fixed times, as time goes the DCM diverges and the swing foot is not able to capture the DCM fast enough. However, when timing adjustment is enabled (case(b)), the algorithm adapts the next footprint and landing time based on the measured DCM. As a result, the robot steps on the borders of the feasible area very fast to recover from the push. In the bottom figures, the swing foot trajectory in vertical direction for each case is shown. As it can be observed, employing the constrained problem in Equation \eqref{QP_poly} results in very smooth swing foot trajectories, despite the constant step location and timing adjustment.

\begin{figure}
\centering
\setlength{\belowcaptionskip}{0mm}
\includegraphics[clip,trim=5.5cm 5.8cm 10cm 1.cm,width=0.48\textwidth]{CoMCoP}
\caption{Comparison of trajectories in cases with and without time adjustment. Top: left and right feet, CoM and DCM horizontal positions. Bottom: left and  right feet height. The vertical lines show the step duration. }
\vspace{-1.5em}
\label{CoMCoP}
\end{figure}

\subsection{Comparison with a state of the art preview controller}
In the second scenario, we compare the robustness of our proposed optimization procedure with time adjustment to the approach proposed in \cite{herdt2010online}.
We choose this algorithm for comparison because it can be considered, together with variations of this
technique \cite{kajita2003biped,wieber2006trajectory,diedam2008online} as a standard,
state of the art, walking pattern generator.
The optimizer in \cite{herdt2010online} is an extension of the algorithms developed in \cite{kajita2003biped,wieber2006trajectory,diedam2008online} which generates automatically both step locations and CoM trajectory for a desired walking velocity. Since in this approach the next step locations are considered as decision variables, the optimizer adapts step locations inside a feasible area while step timing is fixed. In the paper, a horizon of $N=16$ time intervals of length $T=0.1 s$  is used, which results in a total preview horizon of $NT=1.6 s$.
Note also that solving the quadratic program for this problem with a 1.6 s horizon is considerably more expensive compared to our approach in terms of computation cost.

We used the same parameters for both approaches using a LIPM with point contact and computed the maximum push that each approach can recover from in various directions (Figure \ref{comparison}). The value $\theta$ is the angle between the direction of motion and the push direction (counterclockwise). Hence, negative values show pushes to the right direction. We present here stepping with zero forward velocity to have symmetric results, but qualitatively similar results are obtained at different walking velocities.
For each simulation, a force during $ \Delta t =0.1 s$ is applied at the start of a step in which the left foot is stance. We use $T_{nom}=0.5 s$ (computed from the first stage of our algorithm) for both approaches.

\begin{figure}
\centering
\setlength{\belowcaptionskip}{0mm}
\includegraphics[clip,trim=.5cm .4cm 1.8cm 0.5cm,width=0.48\textwidth]{comp}
\caption{Comparison with the controller from \cite{herdt2010online}. $\theta$ is the angle between the direction of motion and the push direction (counterclockwise). $\theta$ =0 deg corresponds to a forward push, while $\theta$ =90 deg and $\theta$ =-90 deg represent pushes to the left and right directions, respectively. Backward pushes are not shown as they result in symmetric results.}
\vspace{-1.5em}
\label{comparison}
\end{figure}

As it can be observed in Figure \ref{comparison}, our walking controller which solves a small sized quadratic program and only adapts the next step location and time can recover from much more severe pushes compared to the approach in \cite{herdt2010online} with a preview of several steps but without step timing adaptation.
It can be seen that for the side pushes, the direction of the push affects the maximum value of the push that the robot is able to recover from. Indeed, for certain pushes the robot is prone to experience a self-collision (we name it outward direction, left in this case with positive $\theta$ values) and the feasible stepping area is more limited than the other direction (inward direction). We notice that the maximum push in the direction $\theta =-15 \: deg$ (outer corner of the rectangle of feasible area) is larger than the other directions because the feasible area for stepping in this direction is larger than the other directions.

We also tested the controller of \cite{herdt2010online} when utilizing the minimum step timing $T_{min}$.
Here we obtain the exact same robustness results as in our approach.
In fact, in the case of a very severe push, both algorithms yield stepping on the boundaries of the feasible area at the minimum step timing.
The difference is that in our approach stepping is done at the nominal timing as far as possible from boundaries. It is only in the case of a disturbance that step timing is adapted.
Stepping always with minimum time can be an issue as the possibility of system failure increases.
Indeed, in this case actuators will work at their maximum capability all the time and augment the risk of failure. Furthermore, the number of switching between the feet increases which makes the system more vulnerable to lose its balance due to surface unevenness. The other problem caused by stepping with the minimum step timing as a nominal behavior is a great decrease in energy efficiency. In contrast, our algorithm will create steps at maximum speed only in case of absolute necessity which is a more desirable behavior.

\begin{figure}
\centering
\setlength{\belowcaptionskip}{0mm}
\subfloat[real robot]{%
  \includegraphics[width=2.5cm,height=5cm]{athena}
}
\subfloat[simulated model]{%
  \includegraphics[width=2.5cm,height=5cm]{athena_sim}
}
\caption{Sarcos humanoid robot with passive ankles and prosthetic feet used in our simulations.}
\vspace{-1.5em}
\label{athena}
\end{figure}

\section{Humanoid with passive ankles simulation}\label{Full humanoid simulation}
In this section, we use our walking controller on a physical simulation of a Sarcos humanoid robot (Figure \ref{athena}). Each leg of the robot has 4 active degrees of freedom with passive ankle joints and prosthetic feet. For simulating the passive ankle joints, stiff springs and dampers are used.
The actuation torques for the whole body are computed using the hierarchical inverse dynamics described in Section \ref{Whole Body Control}.

\begin{figure}
\centering
\setlength{\belowcaptionskip}{0mm}
\captionsetup[subfigure]{labelformat=empty,position=top}
\subfloat[t=1 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_1}
}
\subfloat[t=2 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_2}
}
\subfloat[t=3 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_3}
}
\subfloat[t=4 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_4}
}

\subfloat[t=5 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_5}
}
\subfloat[t=6 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_6}
}
\subfloat[t=7 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_7}
}
\subfloat[t=8 s]{%
  \includegraphics[width=0.11\textwidth, height=0.1\textheight]{sim_8}
}
\caption{Push recovery example: the robot walks forward at $v_x=0.2 m/s$, the pelvis is pushed at $t=3.7 s$ by $F=200 N$ during $\Delta t= 0.1 s$.}
\vspace{-1.5em}
\label{athena_simulation}
\end{figure}

\begin{figure}
	\centering

	\includegraphics[clip,trim=1cm .4cm 1.6cm 0.5cm,width=8cm]{CoMCoP_sim}
	\caption{First push recovery experiment: lateral trajectories during forward walking without step timing adjustment. The desired lateral velocity is zero in this simulation, however, when the push occurs ( $F=200 N$, at $t=3.7 s$ during $\Delta t= 0.1 s$ which causes an impulse of 20 N.s), the controller sacrifices lateral velocity tracking to recover balance. This push ($impulse=20 N.s$) is the maximum lateral (inward) disturbance that the robot could recover from without timing adjustment.}

	\label{CoMCoP_sim}
\end{figure}

\begin{figure}
	\centering

	\includegraphics[clip,trim=1.cm .4cm 1.6cm 1cm,width=8.5cm]{foot}
	\caption{First push recovery experiment: desired and actual feet trajectories during forward walking without step timing adjustment. The low-level controller tracks the smooth feet trajectories generated by our real-time walking controller. }
	\vspace{-1.5em}
	\label{foot}
\end{figure}

In order to show the robustness  of the proposed walking controller, we conduct different simulation experiments with various external disturbances. Since the robot has finite size feet (i.e. the CoP can move inside the foot),
we set the current contact point $u_0$ in our controller as the current CoP measurement at each control cycle.
The constraints and physical properties are the same as for the LIPM experiments, except that the minimum step duration is now set to $T_{min}=0.3 s$ to account for acceleration limits of the robot.
We test two scenarios: push recovery and slippage recovery. In the first scenario, the pelvis is pushed during stepping in different directions and the performance of the controller is investigated. In the second scenario, the stance foot is pushed during stepping such that slippage occurs.

\subsection{Push recovery}
We simulate the robot for the  controller using fixed stepping duration
and then with timing adaptation to better understand how step timing adaptation changes
push recovery capabilities on the full humanoid.
A typical side-step adaptation behavior is shown in
Figure \ref{athena_simulation}. In this figure, the robot walks forward at a desired
speed, $v_x=0.2 m/s$. In this simulation, the robot pelvis is pushed to the right (inward direction) by a force  $F=200\ N$, at $t=3.7\ s$ during $\Delta t= 0.1\ s$ which creates a total impulse of $20\ N\cdot s$. To recover from the push, the robot automatically starts stepping to the right direction. Once the push is rejected, the robot resumes its forward walking.

\begin{figure}
	\centering

	\includegraphics[clip,trim=1cm .4cm 1.6cm 0.5cm,width=8cm]{CoMCoP_sim2}
	\caption{Second push recovery experiment: The lateral trajectories during stepping in place with both step location and timing adjustment. The desired velocity is zero during this simulation. When the push ($F=390 N$, at $t=3.9 s$ during $\Delta t= 0.3 s$) is exerted, the controller adapts both step location and timing to recover from this severe lateral (inward) push. This disturbance ($impulse=117 N.s$) is the maximum lateral (inward) push that the robot could recover from with step timing adjustment in our simulations.}
	\vspace{-1.5em}
	\label{CoMCoP_sim2}
\end{figure}

\begin{figure}
	\centering

	\includegraphics[clip,trim=1.cm .4cm 1.6cm 1cm,width=8.5cm]{foot2}
	\caption{Second push recovery experiment: The desired and actual feet trajectories during stepping in place with both step location and timing adjustment. The low-level controller tracks the smooth feet trajectories generated by our real-time walking controller. We can see that when the step timing is adapted, the step height is adapted to satisfy the constraints specified in (\ref{QP_poly}). }
	\vspace{-1.5em}
	\label{foot2}
\end{figure}

The push recovery capabilities of the controller without time adaptation are shown in
Figure \ref{CoMCoP_sim} and \ref{foot}.
The maximum lateral (inward) disturbance that the robot was able to withstand was a push of $200\ N$ for
$\Delta t = 0.1\ s$, i.e. an impulse of $20\ N\cdot s$. As it can be seen in the figure,
the feet trajectories are adapted to realize the desired landing locations. After the push, the controller sacrifices the lateral velocity tracking and adjusts the foot positions to recover balance. As it can be observed in Figure \ref{foot}, the adapted trajectories of the feet are smooth, and the whole-body controller is able to track very well these trajectories.

The push recovery capabilities of the controller when step timing adaptation is enabled
are shown in Figures \ref{CoMCoP_sim2} and \ref{foot2}.
In this case, the maximum lateral (inward) disturbance that the robot was able to withstand was a push of $390\ N$ for
$\Delta t = 0.3\ s$, i.e. an impulse of $117\ N\cdot s$, which is nearly six times the impulse
that the robot could withstand when timing was not adapted. This is consistent with the
results found for the LIP model (Figure \ref{comparison} with $\theta$ =-90 deg).
This result illustrates the importance
of timing adaptation for stable walking.
This important improvement can be intuitively explained by inspecting Equation \eqref{initial_value} which shows that the DCM diverges as an exponential of time. As a result, taking fast steps (decreasing the step timing) causes exponential improvement to keep the DCM from diverging. This effect is magnified, when the robot takes several steps to recover from a disturbance.

We can see in Figure \ref{CoMCoP_sim2} that both step location and timing are adjusted. To recover from the push, the robot takes five steps with minimum step time to the left on the boundaries of the feasible area.
The feet trajectories (Figure \ref{foot2}) are again adapted very smoothly in the case when step timing is adjusted. Furthermore, it can be observed that the step height is also adapted when the step duration is changed during push recovery. In fact, this shows that when step timing is adapted, the step height is adapted consistently with the constraints specified in Equation \eqref{QP_poly}. The trajectory tracking in the vertical direction degrades compared to the case without timing adjustment (Figure \ref{foot}). This is due to an increase in the desired swing foot acceleration. However, this performance for trajectory tracking in the vertical direction is good enough for realizing a feasible stepping.

\subsection {Slippage recovery}
In the second scenario, we show the capability of our walking controller to recover from slippage.
Here we note that walking controllers based on CoP modulation and tracking are usually very sensitive
to foot slippage during walking. Indeed, when the stance foot slips, the CoP is not controllable anymore (like the case where the stance foot rotates around the edges).
Here we aim to illustrate a benefit of our controller: since it does not rely on CoP control
it can recover from large slippage by adjusting the swing foot landing location and time.

\begin{figure}
	\centering

	\includegraphics[clip,trim=1cm .4cm 1.6cm 0.5cm,width=8cm]{CoMCoP_slip}
	\caption{First slippage recovery experiment: The lateral trajectories during a forward walking without step timing adjustment. The desired lateral velocity is zero during this simulation. The stance foot is pushed laterally by $F=400 N$, at $t=3.9 s$ during $\Delta t= 0.2 s$ such that slippage occurs. After the push, the foot locations are adjusted to recover the robot from the push.}
	\vspace{-1.5em}
	\label{CoMCoP_slip}
\end{figure}

To cause foot slippage during walking, we apply strong pushes on the stance foot such that it slips.
Note that the LIPM dynamics is not valid anymore during slipping. However, our controller
constantly adapts the LIPM base, $u_0$, to the measured CoP which is sufficient
for recovery.

\begin{figure}
\centering
\includegraphics[clip,trim=1.cm .4cm 1.6cm 1cm,width=8.5cm]{foot_slip}
\caption{First slippage recovery experiment: The desired and actual feet trajectories during a forward walking without step timing adjustment. When the push is exerted at $t=3.9 s$, the left foot slips to the left. The right foot trajectory is then adapted to recover the robot from this disturbance.}
\vspace{-1.5em}
\label{foot_slip}
\end{figure}

Again, we compare the performance of the controller when step timing is adapted or not.
For the case without timing adaptation, Figure \ref{CoMCoP_slip} shows a forward walking simulation while the stance foot is pushed by$F=400 N$, at $t=3.9 s$ during $\Delta t= 0.2 s$ (impulse of $80\ N\cdot s$). Slippage of the left foot in this case can be observed in the actual foot trajectory in lateral direction in Figure \ref{foot_slip}. In this case, the left foot which is stance at $t=3.9 s$ is pushed to the left. This causes a faster DCM divergence to the right direction. Hence, the right foot which is swing steps more in the right direction to recover from this disturbance.

Figure \ref{CoMCoP_slip2} shows the lateral trajectories for a simulation experiment with a push of $F=930 N$, at $t=3.9 s$ during $\Delta t= 0.3 s$ (impulse of  $279\ N\cdot s$) on the stance foot when step timing adjustment is enabled. Again, we can see a degradation in the foot trajectory tracking in lateral direction in Figure \ref{foot_slip2}. In this case, the controller exploits a combination of step timing and location adjustment to recover from this strong disturbance. Furthermore, some high frequency oscillations can be seen in Figure \ref{CoMCoP_slip2} in the DCM trajectory (and the estimated next footprint), which is due to the huge disturbance on the stance foot. This huge disturbance causes high frequency oscillations of the passive elements in ankles. Here we note that the robot is able to withstand an impulse
on the foot which is more than three times larger than the impulse withstood when step timing
is not adjusted. This again illustrates the importance of timing adjustment during walking.

\begin{figure}
	\centering

	\includegraphics[clip,trim=1cm .4cm 1.6cm 0.5cm,width=8cm]{CoMCoP_slip2}
	\caption{Second slippage recovery experiment: The lateral trajectories during stepping in place with both step location and timing adjustment. The desired velocity is zero during this simulation. The stance foot is pushed laterally by  $F=930 N$, at $t=3.9 s$ during $\Delta t= 0.3 s$ such that slippage occurs. After the push, the foot locations are adjusted to recover the robot from the push.High frequency oscillations of the DCM trajectory is due to the huge disturbance on the stance foot. This huge disturbance causes high frequency oscillation of the passive elements in ankles.}
	\vspace{-1.5em}
	\label{CoMCoP_slip2}
\end{figure}

\section {Discussion}\label{Discussion}
In this section, we discuss our results with respect to the state of the art and we outline the limitations of our approach.

\subsection{Results}
The following points can be deduced from our experimental results:
\begin{itemize}
\item \textit{Generality} Without modulating the CoP at each control cycle to control the CoM or DCM, we could generate robust gaits by adapting step timing and location. This suggests that our approach can be used for biped robots with active ankles, passive ankle, or point contact foot. We successfully used the controller to control an underactuated biped robot with passive ankle joints and prosthetic feet.
Moreover, as we have discussed in Section \ref{Fundamentals}, optimizing for the DCM offset over one step is enough to always keep the robot in a viable state (if such a state exists).

\item \textit{Computational efficiency} The size of the optimization problem drastically decreases compared to an MPC approach with several preview steps. In fact,
by considering the DCM offset as a decision variable in our optimization problem, we need not integrate the motion forward over several time steps to preserve a sufficient condition of viability \cite{wieber2016modeling}. This results in a very small sized QP compared to common optimization-based walking controllers \cite{kajita2003biped,wieber2006trajectory,diedam2008online,herdt2010online}, typically
at least an order of magnitude smaller in the number of decision variables.

\item \textit{Controller receding horizon length} A very interesting question that should be carefully answered by MPC-based walking controller designers is \cite{zaytsev2015two} : \textit{how far ahead in time shall our controller optimize motion for?} We showed in this paper that by only looking at the end of the current step in the controller, the robot is able to recover walking from any viable state. Interestingly, analyses on human walking experiments agree with this argument for many cases such as normal walking with the change of step location and width and even in the presence of obstacles \cite{patla1997and,patla2003far}.
Although, when walking becomes very challenging and constrained, such as walking on stepping stones, subjects look two steps ahead \cite{patla2003far}.

\item \textit{Importance of step timing adaptation} Our experiments show that timing adjustment significantly increases the walking robustness. Measuring the DCM enables us to adjust the step location in the direction of an external disturbance, while step timing adaptation helps us to regain the balance very fast. Since the DCM diverges exponentially with time, timing adjustment can improve robustness exponentially. This is the key point that shows the major role of timing adjustment in recovering from external disturbances.
Fast recovery from large external disturbances with a full humanoid robot extends previous push recovery implementations that take one step \cite {pratt2012capturability}, or several steps \cite{feng2016robust} without timing adaptation.

\item \textit{Robustness against various disturbances}
The measured CoP and estimated DCM are employed to adapt the landing location and time of the swing foot but the controller does not try to control the CoP. This feature enabled us to conduct simulations with strong pushes on the pelvis and stance foot which cause rotation around the edges of the support polygon and foot slippage. In these cases the CoP is not controllable, however this does not degrade the performance of our controller. This feature might also enable the robot to walk over rough terrains, but this is left as a future work.

\begin{figure}
	\centering

	\includegraphics[clip,trim=1.cm .4cm 1.6cm 1cm,width=8.5cm]{foot_slip2}
	\caption{Second slippage recovery experiment: The desired and actual feet trajectories during stepping in place with both step location and timing adjustment. When the push is exerted at $t=3.9 s$, the left foot slips to the left. The next steps locations are adapted to recover the robot from the disturbance.}
	\vspace{-1.5em}
	\label{foot_slip2}
\end{figure}

\end{itemize}

\subsection {Limitation}
We discuss here the controller limitations and potential approaches to address them.
\begin{itemize}
\item \textit{Timing constraint} Constraints on step locations are explicit and depend on the kinematic and environment limitations. However, constraints on step timing are a function of maximum acceleration of the swing foot as well as the distance between the current state of the swing foot and the landing location. As a result, considering a simple constraint on step timing for the worst case decreases the performance of the controller. To circumvent this, we can employ more complex models (but linear) which take into account the swing foot dynamics \cite{takenaka2009real}. Using such models, we could directly constrain the swing foot acceleration instead of step timing.

\item \textit{Angular momentum} We used the LIPM to derive a walking controller, which assumes zero angular momentum and fixed CoM height. This model has been successfully used for online walking pattern generators
over a wide range of terrains in numerous previous contributions. However, considering angular
momentum dynamics could improve the range of external disturbances that can be handled by the controller.
In order to keep the constraints linear, we could employ the LIP with flywheel model \cite{pratt2006capture} and use the angular momentum as a decision variable in the optimization problem.

\item \textit{Walking on stepping stones or in scattered environments} We showed that we do not need to consider a horizon in our walking controller to guarantee viability of the motion. However, when the feasible foot locations are very limited by the environment, such as waking over stepping stones or in the presence of obstacles, we need to add a horizon in the controller to steer the DCM motion in the direction of safe contact points. This problem can be tackled without adding considerable computational burden to our walking controller. Our suggestion is to adapt step timing only in the first step within a desired horizon and to optimize for the subsequent step locations with a fixed nominal step timing. The derivation of such controller is
straightforward from the formalism proposed in the paper.

\item \textit{Real robot experiments} Previous works \cite{feng2015online,pratt2012capturability}
 have shown that our modeling assumptions
can be successfully used on a real robot. While this suggests that our approach would work
as well, real robot experiments, especially for robots with passive ankles or point
feet would be most valuable. At the time when the research was conducted, we did not have
access to such robots.

\end{itemize}

\section{Conclusion}\label{Conclusion}
In this paper, we proposed a walking controller that adapts both step location and timing in real time to generate robust gaits.
In the case of the LIPM, the controller is guaranteed to recover from any disturbances as long as the current state is viable by solely considering the next step location and timing.
Comparison with state of the art preview controllers emphasized the importance of step
timing adaptation and
demonstrated that our approach can be significantly more robust than methods that do not adjust timing, even when those controllers optimize over several preview steps. Full humanoid simulations through push recovery and slippage recovery scenarios on a biped robot with passive ankles showed the robustness of our proposed controller even without control authority in the ankles.

\section*{Acknowledgment}

This research was supported by the Max-Planck Society, MPI-ETH center for learning systems and the European Research Council under the European Union's Horizon 2020 research and innovation program (grant agreement No 637935).


Lotto: Numbers drawn 1, 2, 18 and 24. There was no jackpot winner. Well done to Christopher Delaney who matched 3 numbers and received €40. Next weeks jackpot is €10,700 and will take place in Ryan's Bar. The winners of this months monthly members draw are Mick Griffin who won the top prize of €700 & the 3 x €100 winners are Kevin Mannion, Noel Flaherty & Bridie Ruane. Congrats to the winners & thank you to all who continue to show their support.
Hurling: Under age training continues Sunday morning at 12:30 - 1:30pm at the pitch in Abbey. Juniors playing a challenge match V's Kilimordaly at 8pm Thursday in Kilimordaly. The Intermediates play at home on Friday evening at 7:30pm against Carnmore in a City League game. Support as always is appreciated. Hurling Club meeting next Monday, 2nd at 9pm in the clubhouse.
Camogie: Under age training has moved to Thursday just for this week as the Nicholson cup final is on this eve. We'd like to wish the best of luck to all the schools & their players who are participating in the final. Under 12 & 14's extra training on Friday from 7-8:30pm in Crumlin N.S pitch. The North Board league for 10's, 12's & 14's is kicking off soon so it's important that all players attend training in preparation.
GAA Cul Camp is on in Abbey from 2nd to 6th July. It caters for children aged 6 - 13. Cost is €55 for child 1, €45 for child 2, €40 for child 3/4/5. You can register online www.gaa.ie/kellogsculcamps. Application forms also available at the clubhouse.
Well done and best to luck to Fionnan Garvey who has been called into the Galway U-14 development squad.
Congrats to the Monivea-Abbey intermediates on their championship win at the weekend & the ladies team who had a win on Monday evening.


text:
Our project — short version
6 Jul 2013 • 1 min read
If we want to bring about a more open community we'll need more tools, more information and more engagement around the issue.
That's where our idea comes in. Imagine a browser-based tool which allowed you to track every time someone was denied access to a paper? Better yet, imagine if that tool told gave you basic information about where in the world they were or their profession and why they were looking. Integrating this into one place would create a real time, worldwide, interactive picture of the problem. The integration of social media would allow us to make this problem visible to the world. Lastly, imagine if the tool actually helped the person gain access to the paper they'd been denied access to in the first place. Incentivising use and opening the barriers to knowledge combined can make this really powerful.
That's what we're imagining. We're calling it the Open Access button. Every paywall met is an isolated incident; it's time we capture those individual moments of injustice and frustration to turn them into positive change. We've figured out how all this and more can be done — If you're a programmer, we'd love your help creating a basic prototype to prove this is a viable idea. After that our dreams include a having a slick website to provide a home for the button and an accompanying campaign. If you have anything you feel that can help us and you want to help create change to move towards a more open world join us by contacting oabutton@gmail.com.
#bmjhack Storify
Last weekend, we took our open access button idea to the BMJ Hack and we built a protoype. We storify'd the weekend here. Who knew you could have so much fun? Indoors, on the hottest weekend of the year. Open Access Button@OA_
Changing the game in the search for open access
For the past few months, like chickens on eggs we have been sitting on what we think is a game changing idea. We've been sitting on it because despite trying as two student activists, we just haven't found the help we need

redpajama_set_name: RedPajamaCommonCrawl


SFC Energy AG (www.sfc.com) is a leading provider of hybrid solutions to the stationary and portable power generation markets. SFC is the number one supplier of fuel cells, with over 41,000 fuel cells sold to date. The Company has award-winning products and serves a wide range of applications in the Oil & Gas, Security & Industry and Consumer markets. The Company is headquartered in Brunnthal/Munich, Germany, operates production facilities in the Netherlands, Romania, and Canada, and sales offices in the U.S and Canada. SFC Energy AG is listed on the Deutsche Boerse Prime Standard (WKN: 756857 ISIN: DE0007568578).
On vehicles, supplying power to sensors, radio, surveillance and defence systems that are integrated in the vehicle required starting the engine or a noisy generator had to be used. This is a high risk for camouflage and often leads to early detection. The EMILY fuel cell charges the on-board battery automatically, quietly and without being detected. It guarantees operation of the loads even when the engine is turned off. Therefore, camouflage remains intact. EMILY 3000 is able to charge modern lithium ion and lithium polymer batteries, as well as the conventional lead batteries. EMILY 3000 is characterised by virtually signature-free, silent and emission-free operation, therefore making it the modern task forces' number one choice. Away from the vehicle, it is also suitable as a mobile field-based charging station for batteries.
Modern task forces require a portable, reliable energy supply. Missions can take from several days to several weeks. In order to supply power reliably to soldiers' technical equipment, a huge amount of batteries had to be carried along. JENNY 1200 can charge batteries or directly supply power to electrical consumers in the field silently and fully automatically. Together with the SFC Power Manager 3G, several consumers can be supplied with power very efficiently at the same time.
The advantages of the systems are a significant reduction in the number of batteries soldiers need to carry (with more than 75 % weight reduction for a mission with a duration of 96 hours), a barely detectable noise and heat signature, and almost maintenance-free operation. Total cost of ownership and expenditures for logistics are partly significantly reduced. The portable JENNY 1200 fuel cell is an addition to the JENNY series that is already field-proven and has been used by the German Armed Forces (Bundeswehr) for years. With a nominal power output of 50 Watt, the multi-award-winning DMFC (Direct Methanol Fuel Cell) technology of SFC Energy for defense and security applications ideally extends the successful product portfolio of the already with NATO stock number introduced JENNY 600S (25 Watt) ideally. JENNY 1200 is in use with international defense organizations.
Nowadays, the modern soldier has to carry numerous electrical devices. All these devices have different mains and charging units to guarantee the power supply. The SFC Power Manager 3G enables the soldier to use all energy sources available in the field such as hybrid batteries, solar panels, vehicle power and, of course, fuel cells to power devices or charge batteries.
The SFC Power Manager 3G automatically detects the connected devices, thanks to intelligent cable coding, and adjusts the output voltage correspondingly. This results in very low power loss and superefficient power distribution which is essential for operations in the field. Carrying separate chargers is therefore redundant and resulting in additional storage space. SFC Power Manager 3Gs of different generations are already being used by the US Air Force, the German Bundeswehr and many other defence organisations.


The Niagara Region has been named winner of the municipality bid to host the 2021 Canada Games.
The announcement was made at a media conference held at Hart House in the centre of the University of Toronto on Thursday, March 30, at noon.
Dan Patterson, President of Niagara College, attended the media conference in Toronto along with mayors from the Niagara Region.
"This is a win-win for athletes and the entire community of Niagara," said Patterson.
Niagara's bid committee for the 2021 Canada Games held a satellite broadcast event at the FirstOntario Performing Arts Centre, in St. Catharines, to broadcast the announcement of the Canada Games Council's decision about which municipality would be chosen to host the summer games.
The 2021 Canada Games are expected to bring new infrastructure and job opportunities, as well as unite all 12 municipalities of the Niagara region as preparations begin for the games.
The Niagara Sport Commission has begun to prepare for the games.


text:
HomepageIsraelNews
John Waage
The Moabite Stone, found to have a reference to the biblical King David.
JERUSALEM, Israel – Researchers at the Louvre Museum in Paris have confirmed that the text on an ancient stone on displayed there, the Moabite Stone, also known as the Mesha Stele, refers to King David in the Bible.
The Moabite Stone, dating back to 840 BC, was found fragmented, in 1868, in the region of Moab in Jordan, about 15 miles east of the Dead Sea.
The stone sustained further damage in 1869, but archaeologists had earlier made a paper-mache likeness of the text, which was written in an extinct Moabite language, and described events in the Book of Kings from the Old Testament.
The stele includes phrases such as "House of David" and "Altar of David," but the damage to the stone's face made accurate translation of the text difficult.
By using newer technology, including enhancing techniques in digital photography, researchers verified that the text does refer to the biblical King David.
The Moabite Stone is about 3 feet tall by 2 feet wide and was hewn out of black basalt. On it was inscribed the deeds of the Moabite King Mesha, including territorial battles against Judah, Israel, and Edom.
The description of the House of David on the stone is only five letters, BTDWD, which in Hebrew would refer to BT or Beit (House) and DWD (David).
The references in the Bible are found in 2 Kings, Chapter 3.
***Please sign up for CBN Newsletters and download the CBN News app to ensure you keep receiving the latest news from a distinctly Christian perspective.***
'God Has Your Back': Actor Neal McDonough on New End Times Film, Why He Won't Film Sex Scenes, and His Faith


YORK, Maine — The Portsmouth Herald and York Weekly will hold a candidates night at 7 p.m. on Thursday at the York Public Library. It will be simulcast on public access Channel 3.
Invited to attend are state Senate candidates Republican Mary Andrews and Democrat Peter Bowman; District 149 candidates Democrat Dawn Hill and Republican Bradley Moulton; and District 150 candidates Democrat Ron McAllister and Republican Windol Weaver.


Attention AP Students: please turn in your AP exam money today, If you have any questions, see Mrs. Harris in the Counseling Office.
There will be an NHS Relay 4 Life meeting in Mrs. Bailey's room tomorrow, March 17 for those who signed up. The meeting will be at 3 p.m.
SENIORS: Just a reminder that date forms for prom are due tomorrow, March 17th.


I live in a constant state of wanderlust, and it doesn't take much to have me researching trips and trawling SkyScanner for cheap flights.
A couple of weekends ago, I was talking to a colleague about the month long trip she's taking to Australia this summer; that was all it took for me to start researching a trip of my own.
The problem was, I couldn't choose.
Canada is a place that has been on my travel list for well over 10 years. Between you and me, I first fell in love with Canada when I was 10 years old and became obsessed with Avril Lavigne. Since then, I've longed to explore the beautiful lakes, have my breath taken away at the top of a trail, and maybe spot a wild bear (from a very safe distance – I was surprised to discover that 'bear spray' is an actual thing).
San Francisco joined my travel list in a geography lesson one day, when we were learning about earthquakes. I'm sure earthquake videos are not how you're supposed to fall in love with a city, but hey ho. It's such a stylish looking city, with the painted ladies, the imposing Golden Gate bridge, and the humongous trees, it had me hooked.
With my heart torn in both directions, I simply decided not to choose; to do both.
Towards the end of the summer, I'll be heading off on my own to immerse myself in places I've dreamed of visiting for years.
The thought of travelling solo is simultaneously liberating and scary. I won't be on my own for the entire trip, but the thought of exploring Canada on my own and not meeting anyone is a little daunting for me. Conversely, the idea of being dependent on myself is exciting.
If you've got any suggestions for places to see and do in San Francisco and the Banff / Jasper region of Canada, please let me know.
How cheaply can I travel to & stay in Banff / Jasper, Canada?


text:
package com.hevelian.olastic.core.api.edm.provider;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.hevelian.olastic.core.common.NestedTypeMapper;
import com.hevelian.olastic.core.elastic.mappings.ElasticToCsdlMapper;
import com.hevelian.olastic.core.elastic.mappings.MappingMetaDataProvider;

/**
 * Implementation of {@link ElasticCsdlEdmProvider} to work with Elasticsearch
 * multiple indices.
 */
public class MultyElasticIndexCsdlEdmProvider extends ElasticCsdlEdmProvider {

    private final Map<String, String> namespaceToIndexMap = new HashMap<>();
    private List<String> namespaces;

    /**
     * Constructor to initialize mapping metadata provider and multiple indices
     * to work with.
     *
     * @param metaDataProvider
     *            mapping meta data provider
     * @param indices
     *            indices names
     */
    public MultyElasticIndexCsdlEdmProvider(MappingMetaDataProvider metaDataProvider,
            Set<String> indices) {
        super(metaDataProvider);
        initializeNamespaces(indices);
    }

    /**
     * Constructor to initialize mapping metadata provider, multiple indices to
     * work with and custom {@link NestedTypeMapper} implementation.
     *
     * @param metaDataProvider
     *            mapping meta data provider
     * @param indices
     *            indices names
     * @param nestedTypeMapper
     *            mapping strategy
     */
    public MultyElasticIndexCsdlEdmProvider(MappingMetaDataProvider metaDataProvider,
            Set<String> indices, NestedTypeMapper nestedTypeMapper) {
        super(metaDataProvider, nestedTypeMapper);
        initializeNamespaces(indices);
    }

    /**
     * Constructor to initialize mapping metadata provider, multiple indices to
     * work with and custom {@link ElasticToCsdlMapper} implementation.
     *
     * @param metaDataProvider
     *            mapping meta data provider
     * @param indices
     *            indices names
     * @param csdlMapper
     *            ES to CSDL mapper
     */
    public MultyElasticIndexCsdlEdmProvider(MappingMetaDataProvider metaDataProvider,
            Set<String> indices, ElasticToCsdlMapper csdlMapper) {
        super(metaDataProvider, csdlMapper);
        initializeNamespaces(indices);
    }

    /**
     * Constructor to initialize mapping metadata provider, multiple indices to
     * work with, {@link ElasticToCsdlMapper} and {@link NestedTypeMapper}
     * implementations.
     *
     * @param metaDataProvider
     *            mapping meta data provider
     * @param indices
     *            indices names
     * @param csdlMapper
     *            ES to CSDL mapper
     * @param nestedTypeMapper
     *            mapping strategy
     */
    public MultyElasticIndexCsdlEdmProvider(MappingMetaDataProvider metaDataProvider,
            Set<String> indices, ElasticToCsdlMapper csdlMapper,
            NestedTypeMapper nestedTypeMapper) {
        super(metaDataProvider, csdlMapper, nestedTypeMapper);
        initializeNamespaces(indices);
    }

    /**
     * Method to initialize list of schema namespace to work with.
     *
     * @param indices
     *            list of indices from Elasticsearch
     */
    protected void initializeNamespaces(Set<String> indices) {
        this.namespaces = new ArrayList<>(indices.size());
        for (String index : indices) {
            String namespace = csdlMapper.esIndexToCsdlNamespace(index);
            namespaces.add(namespace);
            namespaceToIndexMap.put(namespace, index);
        }
    }

    @Override
    protected List<String> getSchemaNamespaces() {
        return namespaces;
    }

    @Override
    protected String namespaceToIndex(String namespace) {
        return namespaceToIndexMap.get(namespace);
    }

}

redpajama_set_name: RedPajamaGithub


Oak Hill Post Office #4 Matt .
Oak Pedestal Plant Stand #2 Oak Antique 1900 Sculpture Display Pedestal Or Plant Stand .
Charming Oak Rolltop Computer Desk Awesome Design #1 Oak Rolltop Desk .
Oakridge Sofas Reviews #6 1024 .
Oakridge Sofas Reviews #7 1024 .
Oasis Bedroom #3 Oasis Bedroom Set .
Ocean Grove Nj Bed And Breakfast #6 Enjoy The OCEANVIEWS, Open Porches, The Garden, Courtyard And The Upper Deck With Sweeping Views Of Ocean Grove. Name, Goodwill, Licensing, Booking Software .
Superior Octagon Tree Bench #3 You Can Build A Bench Similar To This One.
Odorous House Ants #4 How To Identify Odorous House Ants.
Marvelous Office Chair Weight Capacity Nice Design #4 Name500-lb-weight-capacity-mesh-office-chair-reviews.jpg .
Office Depot Federal Way #1 Helping .
Ordinary Office Desk Locks Good Ideas #3 Hl401p Office Furniture Lock Office Desk Drawer Lock Drawer Push With Regard To Desk Drawer Locks Renovation .
Office Furniture Resale #1 Discounted Used Furniture Will Provide You With Everything You Need For Your Office At An Incredible Discount. You Can Visit Our Furniture Stores From .
Office Furniture Resale #3 Office Furniture Resale Austin .
Office Max Colorado Springs #5 Helping You Find What You Need Is What Matters At OfficeMax. Check Them Out For The Largest Selection Of Office Supplies In Colorado Springs.
Oil Absorbent Mats #1 Oil Trap Absorbent Mat Pads With Tray - Oil Absorbent Matting | Mats Inc.
Oil Diffuser Lamp #3 Enlighten Remote Control Light And Essential Oil Diffuser- Isabella Catalog .
Old Crane Faucet Parts #3 Crane Faucet Rebuild Kit Kit Includes Internal Parts And Exterior Trim.
Exceptional Old Crane Faucet Parts #5 This Image Has Been Resized. Click This Bar To View The Full Image. The Original Image Is Sized 1352x1014.
Old Crane Faucet Parts #7 We Were Quite Frustrated When The Crane Reproduction 3/8" Cross Handles Were Discontinued By The Last Manufacturer, And Escutcheons Simply Weren't Available .
Old Shirt Quilt #1 This Might Be The Perfect Fall Project. The T-shirt Quilt. First Of All, You Get To Recycle All Of Those Old College/school/sports T-shirts Taking Up Too .
Ole And Lena Garage Door #2 To Make Sure Your Garage Door Stays In Balance And You Can Avoid Residential Garage Door Repair, Follow These Tips For Keeping Your Garage Door In Balance .
Superior Olfa Mat Cutter #9 Like This Item?
Olive Garden Bolingbrook Il #1 Best 25+ Olive Garden Lunch Specials Ideas On Pinterest | Olive Garden Specials, Olive Garden Sausage And Kale Soup Recipe And Potato And Sausage Soup .
Olive Garden Moreno Valley Design Inspirations #3 Mussels Di Napoli. « Back To Olive Garden Italian Restaurant, Moreno Valley .
Omaha Furniture Mart #9 Designing A Dream Home. Nebraska Furniture Mart Omaha .
One Bedroom Apartments Boulder #6 Downtown Boulder Victorian-Top Floor Apartment!
One Day One Room House #3 Katheryn-Winnick-as-Eve-in-House-MD-3x12-. The Episode: "One Day .
One Way Squirrel Door Great Ideas #1 One-way Doors, Especially When Put In Place A Couple Of Days After Hazing Techniques (see Above) Have Begun, Can Be Helpful. But One Must Be Very Careful .
One Way Squirrel Door #4 Rear Of Trap Opens When Clip Pin Is Removed.
Online Virtual Bookshelf #5 My Current Bookshelves Books Wonders Img_3161. Build Your Own Virtual House. Home Decor Ideas .
Superb Ontario Quilt Show #3 This Show Was Certainly A Wonderful Three-day Event, And The Stunning Display Was Recognized As Being Synonymous With The Skill And Renown Of The Quilters .
Open Air Shed #7 Fuller Plantation By Allbritton & Berry Construction, Designed By Ava Franzolini. This Building Was Inspired By The Historic Open Air Packing Sheds That .
Operating Room Temperature #3 Seroma Probability Versus Minimum Operative Temperature (°C); (colored) Actual Seroma Rates In Zones Of Risk; (curve) Predicted Probability Of Seroma .
Opposite Of Vanity #1 There's A Large Wood Vanity With A White Counter And Round Mirrors. Beside The Vanity Is A Small Nook With A Laundry Room, And Opposite The Vanity Is .
Superb Opposite Of Vanity #6 At The Powder Room, A Backlit Shoji Screen In A Narrow Slot Opposite The Vanity Was Introduced As A Lighting Element, Creating The Impression Of Natural .
Orange Kitchen Walls #4 Full Size Of Kitchen:burnt Orange Kitchen Walls Orange Kitchen Walls Burnt Cheap Rugs Towel .
Orange Kitchen Walls #6 Full Size Of Kitchen:orange Kitchen Walls With White Cabinets Orange Kitchen Walls With White .
Orange Kitchen Walls #9 Wall .
Attractive Orange Kitchen Walls Awesome Design #10 1 Can Of Paint, 25 Different Ways. Orange Kitchen WallsKitchen .
Oregon State Financial Aid Office #5 View This Diagram Of .
Attractive Organic Japanese Futon #3 Furniture Japanese Futon Mattress For Sale Beautiful Twin Intended For Organic Futon Mattress Uk Ideas .
Ordinary Organize Makeup Drawer Great Ideas #5 Easy Ideas For Organizing Make-up And When To Get Rid Of It!
Oriental Floor Mats #6 Designer Mat® - Oriental Auto Mat™ 1st Row Multicolor Carpeted Floor Mats .
Orla Kiely Planter #4 Grow Your Own Seasonings In Vintage Style With This Set Of Three Herb Pots From Orla Kiely. Crafted From Enamel, These Pots Feature Three Stunning Orla .
Ottoman Daybed #4 House Doctor Ottoman Daybed Velvet Green Wood .
Outdoor Chair Cushions Cheap #2 Full Size Of Outdoors:wonderful Outdoor Patio Chair Cushions At Walmart Cheap Outdoor Patio Chair .
Outdoor Chaise Lounge For Two #4 Chaise .
Outdoor Decorative Rugs #3 Adding Nautical-inspired Outdoor Cushions, Pillows And Rugs As Well As Some Natural Elements In Your Outdoor Decor Will Transform Your Boring Backyard Into .
Outdoor Led String Lights Idea #2 This Set Of Festive String Lights Features Twenty Frosted Globe Bulbs, Each Illuminated By Five Warm, White LED Lights, Strung Along A Thirty-three Foot .
Outdoor Led String Lights #5 Outdoor LED Decorative String Lights - 10 In-Line Sockets - Fits E26 Bulbs: Shown With A19D-x2FW (Sold Separately) Installed.
Lovely Outdoor Patio Recliners Pictures Gallery #7 Cast Aluminum Framed Adjustable Lawn Chairs .
Outdoor Pillows Cheap #1 OriginalViews: .
Ordinary Outside Coffee Tables #2 Full Size Of Coffee Tables:outside Coffee Tables Keter Corfu Charcoal Resin Wicker All Weather .
Oven Under Cooktop #5 Full Image For Wall Oven And Cooktop Wiring Ge Wall Oven Under Cooktop Whirlpool Wos97es0es 30 .
Charming Oversized Deep Couches #6 Full Size Of Sectional Sofa:deep Sofa With Chaise Awesome Furniture Oversized L Shaped Couch .


Neutral territory here but close to a short term extreme, which can be reached with a 1.5% drop from here. That'd be SPX around 2045. With the sell off seen on Monday my system almost reached an oversold condition but it didn't get quite there in all 3 indicators. With that elephant red bar, closing near the low of the day I was expecting some more downside the next day and it didn't happen. For this reason I didn't get to sell Out of the Money Puts. But strict technicality aside, for the more Bohemian trader, it was possible to sell something like the August SPX 1840/1830 Put spread for 0.60 credit or better which looked like a decently safe play. It was also possible to sell RUT 1160/1150 with July options expiring in just two weeks for 0.60 credit as well offering good odds down there.
The Russell index looks a little bit weaker by comparison but the lower end of the uptrend channel was very well defended on Friday.
It is always psychologically hard to sell Puts during market sell offs because it will always seem like the end of the world. All you will hear around you is negativity, from the media, your friends, girlfriend and your dog. But it is the best time for Put selling. You can always test the waters with a smaller position first if you have a large portfolio.
I didn't pull the trigger waiting for more extreme pessimism with my indicators telling me there was still a bit more downside room. I don't regret what may seem like a missed opportunity now, because the fact that the market did not keep falling was good for my existing Iron Condors. You can always find some sort of joy with anything the market throws at you, provided you have been playing conservatively.
95% probability of success and 2 weeks to expiration. Looks like I won't have problems here.
70% probability of success with 7 weeks to expiration. No concerns on the Call side. I need to be careful about the Put side in the next few days should the market keep falling.
I will adjust the Put side of the RUT August Iron Condor in the event that RUT falls from its current price of 1248 to around 1225. If that happens, I will close the 1150/1160 Put spread for a loss and I will deploy a new Put spread in the 1080/1070 area.
If SPX falls to around 2040 - 2045, I will be a happy seller of the August 1825/1820 Credit Put spread for 0.30 credit or better.
If the market moves sideways or goes up, my time will be employed in writing up useless market quotes on Twitter.
Happy belated 1st of July to all my Canadian friends!
Last Monday, my indicator told me that we had an oversold signal on SPX when it went below 2065. I was able to sell SPX Sept 30th 1800/1790 for .80 credit.
The account ended the first half of the year up 13.61%. My goal is to reach 20% or better by the end of the year.
I did not make any trade last week. I did not open new positions and there was no need to adjust my existing spreads. I just enjoyed the theta decay of my credit spread portfolio.
I will monitor open positions. The adjustment points for the SPX Aug spreads are roughly (2025;2140) and for the RUT Aug spreads (1235;1300).
I noticed that RUT triggered your adjustment point today when it went below 1235. Do you wait until the end of the day to make the adjustment or do it right away when it is breached? RUT is now trading above 1235.


Having a healthy diet does not offset the effects of eating larger amounts of salt, research has found.
The study found those who ate higher amounts of salt had higher blood pressure – no matter how healthy their overall diet. High blood pressure increases the risk of a number of conditions, including heart attacks and stroke. It is thought to have a number of causes, including age, weight and eating too much salt.
It was thought the vitamins and minerals in fruit and vegetables might in some way affect blood vessels, enabling them to lower blood pressure, and that eating high amounts of fruit and vegetables might help counteract the effect of high salt on blood pressure. However, while these foods do tend to lower blood pressure, the new research suggests they do not counteract the adverse influence of salt intake.
The study, which is published in the journal Hypertension, analysed the diets of more than 4,000 people from the US, UK, Japan and China using data from the International Study of Macro-and Micro-Nutrients (Intermap) study.
The team assessed concentrations of sodium and potassium in the participants' urine samples, while they assessed their intake of more than 80 nutrients that may be linked to low blood pressure, including vitamin C, fibre, and omega-3 fatty acids.
The recommended upper limit of adult salt intake is 6g a day – around one teaspoon. The study found that average salt intake across the study was 10.7g a day. The average intake for the UK was 8.5g, USA was 9.6kg, Japan was 11.7g and China was 13.4g.
Increasing salt intake above this average amount was linked to an increase in blood pressure. An increase of an additional 7g (1.2 teaspoons) of salt above the average intake was associated with an increase in systolic blood pressure of 3.7 mmHg.
Scientists acknowledged that because the data was collected over only four days, it provides information from a snapshot of time. They said they now hope to focus on longer term studies involving a greater number of people.


Question: Has there been research to determine the best possible environment for people to live in ie; humidity, temperature, air purity, and oxygen concentration. If there is where could the results be found.
Probably different opinions depending on nutrition, lifestyle, stress. My choices would be moderate to low humidity, cool to comfortably warm climate, absolute clean air, 21.8 % oxygen, sea level to 1,700 feet*. Lots of negative ions. *Studies show that that is as high as you want to go before the altitude stresses instead of conditions. click here to take your Breathing Tests.


text:
Bishop Paul Mason – installed as Bishop of the Forces at the behest of The Holy Father, Pope Francis
We celebrate our former Bishop for Kent and Trust Board Chair as he moves on to this prestigious national and international role, supporting UK forces on land, sea and in the air. Bishop Paul was installed at the Cathedral of St Michael and St George in Aldershot, Hampshire, and KCSP was privileged to be part of the choir.