Commit 8a778207 authored by Olivier Stasse's avatar Olivier Stasse
Browse files

Fix tabs and 80cols convention.

parent 8777573f
......@@ -67,7 +67,8 @@ namespace PatternGeneratorJRL
{
for(size_t i = 0; i < 3; ++i)
{
os << "x[" << i << "] " << aCp.x[i] << " y[" << i << "] " << aCp.y[i] << " z[" << i << "] " << aCp.z[i] << std::endl;
os << "x[" << i << "] " << aCp.x[i] << " y[" << i << "] "
<< aCp.y[i] << " z[" << i << "] " << aCp.z[i] << std::endl;
}
os << "yaw " << aCp.yaw << " pitch " << aCp.pitch << " roll " << aCp.roll;
return os;
......@@ -90,7 +91,8 @@ namespace PatternGeneratorJRL
COMState_s();
friend std::ostream & operator<<(std::ostream &os, const struct COMState_s & acs);
friend std::ostream & operator<<(std::ostream &os,
const struct COMState_s & acs);
};
......@@ -105,7 +107,8 @@ namespace PatternGeneratorJRL
double SStime;
double DStime;
int stepType; //1:normal walking 2:one step before obstacle
//3:first leg over obstacle 4:second leg over obstacle 5:one step after obstacle 6 :stepping stair
//3:first leg over obstacle 4:second leg over obstacle
// 5:one step after obstacle 6 :stepping stair
double DeviationHipHeight;
RelativeFootPosition_s();
};
......@@ -166,14 +169,16 @@ namespace PatternGeneratorJRL
/*! Time at which this position should be reached. */
double time;
/*! 1:normal walking 2:one step before obstacle
3:first leg over obstacle 4:second leg over obstacle 5:one step after obstacle
3:first leg over obstacle 4:second leg over obstacle
5:one step after obstacle
+10 if double support phase
(-1) if support foot */
int stepType;
};
typedef struct FootAbsolutePosition_t FootAbsolutePosition;
inline std::ostream & operator<<(std::ostream & os, const FootAbsolutePosition & fap)
inline std::ostream & operator<<(std::ostream & os,
const FootAbsolutePosition & fap)
{
os << "x " << fap.x
<< " y " << fap.y
......@@ -218,7 +223,8 @@ namespace PatternGeneratorJRL
};
typedef struct HandAbsolutePosition_t HandAbsolutePosition;
inline std::ostream & operator<<(std::ostream & os, const HandAbsolutePosition& hap)
inline std::ostream & operator<<(std::ostream & os,
const HandAbsolutePosition& hap)
{
os << "x " << hap.x
<< " y " << hap.y
......
......@@ -68,7 +68,8 @@ namespace PatternGeneratorJRL
/// Compute RNEA algorithm from
/// \param[in] q: \f$q=[r,\theta,\hat{q}]\f$ with \f$r\f$ the position
/// of the free floating base (usually the waist), \f$theta\f$ the free floating
/// of the free floating base (usually the waist), \f$theta\f$ the
/// free floating
/// orientation in RPY format, $\hat{q}$ the motor angles position.
void computeInverseDynamics(Eigen::VectorXd & q,
Eigen::VectorXd & v,
......@@ -88,7 +89,8 @@ namespace PatternGeneratorJRL
/// compute POSITION (not velocity) of the joints from end effector pose
/// This is the implementation of the analitycal inverse kinematic extracted
/// from the book of Kajita
/// Authors Shuuji Kajita ; Hirohisa Hirukawa ; Kensuke Harada ; Kazuhito Yokoi
/// Authors Shuuji Kajita ; Hirohisa Hirukawa ; Kensuke Harada ;
/// Kazuhito Yokoi
/// ISBN 9782287877162 ; 9782287877155
/// It needs a specific distribution of the joint to work.
/// a test at the initialization of the class is [should be] done to check
......
......@@ -22,6 +22,8 @@ ENDIF()
CONFIGURE_FILE(configJRLWPG.hh.in ${CMAKE_BINARY_DIR}/include/jrl/walkgen/configJRLWPG.hh)
# Make sure to find Debug.h
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/src)
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/src/ZMPRefTrajectoryGeneration)
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/src/FootTrajectoryGeneration)
# Add Boost path to include directories.
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
......
......@@ -22,7 +22,8 @@
* Joint Japanese-French Robotics Laboratory (JRL)
*/
/* \file AnalyticalMorisawaAbstract.h
\brief This abstract class specifies how to generate the reference value for the
\brief This abstract class specifies how to generate the reference
value for the
ZMP based on a polynomial representation following the paper
"Experimentation of Humanoid Walking Allowing Immediate
Modification of Foot Place Based on Analytical Solution"
......@@ -44,7 +45,8 @@
namespace PatternGeneratorJRL
{
/*! \brief Class to define the abstract interface to compute analytically the trajectories of both the ZMP and the CoM.
/*! \brief Class to define the abstract interface to compute analytically
the trajectories of both the ZMP and the CoM.
@ingroup analyticalformulation
Using this method we assume again the linear inverted pendulum of Kajita,
......@@ -65,112 +67,131 @@ namespace PatternGeneratorJRL
/*! Destructor */
virtual ~AnalyticalMorisawaAbstract();
/*! \name Methods inherited from ZMPRefTrajectoryGeneration and reimplemented
/*! \name Methods inherited from ZMPRefTrajectoryGeneration and
reimplemented
@{ */
/*! Returns the CoM and ZMP trajectory for some relative foot positions.
Generate ZMP discreatization from a vector of foot position.
ASSUME A COMPLETE MOTION FROM END TO START, and GENERATE EVERY VALUE.
@param[out] ZMPPositions: Returns the ZMP reference values for the overall motion.
Those are absolute position in the world reference frame. The origin is the initial
@param[out] ZMPPositions: Returns the ZMP reference values for
the overall motion.
Those are absolute position in the world reference frame. The origin
is the initial
position of the robot. The relative foot position specified are added.
@param[out] CoMStates: Returns the CoM reference values for the overall motion.
Those are absolute position in the world reference frame. The origin is the initial
@param[out] CoMStates: Returns the CoM reference values for the
overall motion.
Those are absolute position in the world reference frame.
The origin is the initial
position of the robot. The relative foot position specified are added.
@param[in] RelativeFootPositions: The set of
relative steps to be performed by the robot.
@param[out] LeftFootAbsolutePositions: Returns the absolute position of the left foot.
According to the macro FULL_POLYNOME the trajectory will follow a third order
@param[out] LeftFootAbsolutePositions: Returns the absolute
position of the left foot.
According to the macro FULL_POLYNOME the trajectory will follow
a third order
polynom or a fifth order. By experience it is wise to put a third order.
A null acceleration might cause problem for the compensation of the Z-axis momentum.
A null acceleration might cause problem for the compensation of the
Z-axis momentum.
@param[out] RightFootAbsolutePositions: Returns the absolute position of the right foot.
@param[out] RightFootAbsolutePositions: Returns the absolute position
of the right foot.
@param[in] Xmax: The maximal distance of a hand along the X axis in the waist coordinates.
@param[in] Xmax: The maximal distance of a hand along the X axis in
the waist coordinates.
@param[in] lStartingCOMState: The starting position of the CoM.
@param[in] lStartingZMPPosition: The starting position of the ZMP.
@param[in] InitLeftFootAbsolutePosition: The absolute position of the left foot.
@param[in] InitLeftFootAbsolutePosition: The absolute position of
the left foot.
@param[in] InitRightFootAbsolutePosition: The absolute position of the right foot.
@param[in] InitRightFootAbsolutePosition: The absolute position of
the right foot.
*/
virtual void GetZMPDiscretization(deque<ZMPPosition> & ZMPPositions,
deque<COMState> & CoMStates,
deque<RelativeFootPosition> &RelativeFootPositions,
deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
deque<FootAbsolutePosition> &RightFootAbsolutePositions,
double Xmax,
COMState & lStartingCOMState,
Eigen::Vector3d &lStartingZMPPosition,
FootAbsolutePosition & InitLeftFootAbsolutePosition,
FootAbsolutePosition & InitRightFootAbsolutePosition) =0;
virtual void GetZMPDiscretization
(deque<ZMPPosition> & ZMPPositions,
deque<COMState> & CoMStates,
deque<RelativeFootPosition> &RelativeFootPositions,
deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
deque<FootAbsolutePosition> &RightFootAbsolutePositions,
double Xmax,
COMState & lStartingCOMState,
Eigen::Vector3d &lStartingZMPPosition,
FootAbsolutePosition & InitLeftFootAbsolutePosition,
FootAbsolutePosition & InitRightFootAbsolutePosition) =0;
/*! Methods for on-line generation. (First version)
The queues will be updated as follows:
\li \c The first values necessary to start walking will be inserted.
\li \c The initial positions of the feet will be taken into account
according to InitLeftFootAbsolutePosition and InitRightFootAbsolutePosition.
according to InitLeftFootAbsolutePosition and
InitRightFootAbsolutePosition.
\li \c The RelativeFootPositions stack will be taken into account,
\li \c The starting COM Position.
Returns the number of steps which has been completely put inside
the queue of ZMP, and foot positions.
*/
virtual std::size_t InitOnLine(deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> & FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> & FinalRightFootAbsolutePositions,
FootAbsolutePosition & InitLeftFootAbsolutePosition,
FootAbsolutePosition & InitRightFootAbsolutePosition,
deque<RelativeFootPosition> &RelativeFootPositions,
COMState & lStartingCOMState,
Eigen::Vector3d & aStartingZMPPosition) =0 ;
virtual std::size_t InitOnLine
(deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> & FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> & FinalRightFootAbsolutePositions,
FootAbsolutePosition & InitLeftFootAbsolutePosition,
FootAbsolutePosition & InitRightFootAbsolutePosition,
deque<RelativeFootPosition> &RelativeFootPositions,
COMState & lStartingCOMState,
Eigen::Vector3d & aStartingZMPPosition) =0 ;
/* ! \brief Method to update the stacks on-line */
virtual void OnLine(double time,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions)=0;
/* ! Methods to update the stack on-line by inserting a new foot position. */
virtual void OnLineAddFoot(RelativeFootPosition & NewRelativeFootPosition,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions,
bool EndSequence)=0;
virtual void OnLine
(double time,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions)=0;
/* ! Methods to update the stack on-line by
inserting a new foot position. */
virtual void OnLineAddFoot
(RelativeFootPosition & NewRelativeFootPosition,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions,
bool EndSequence)=0;
/* ! \brief Method to change on line the landing position of a foot.
@return If the method failed it returns -1, 0 otherwise.
*/
virtual int OnLineFootChange(double time,
FootAbsolutePosition &aFootAbsolutePosition,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions,
StepStackHandler *aStepStackHandler)=0;
virtual int OnLineFootChange
(double time,
FootAbsolutePosition &aFootAbsolutePosition,
deque<ZMPPosition> & FinalZMPPositions,
deque<COMState> & CoMStates,
deque<FootAbsolutePosition> &FinalLeftFootAbsolutePositions,
deque<FootAbsolutePosition> &FinalRightFootAbsolutePositions,
StepStackHandler *aStepStackHandler)=0;
/*! \brief Method to stop walking.
@param[out] ZMPPositions: The queue of ZMP reference positions.
@param[out] FinalCOMStates: The queue of COM reference positions.
@param[out] LeftFootAbsolutePositions: The queue of left foot absolute positions.
@param[out] RightFootAbsolutePositions: The queue of right foot absolute positions.
@param[out] LeftFootAbsolutePositions:
The queue of left foot absolute positions.
@param[out] RightFootAbsolutePositions:
The queue of right foot absolute positions.
*/
virtual void EndPhaseOfTheWalking(deque<ZMPPosition> &ZMPPositions,
deque<COMState> &FinalCOMStates,
deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
deque<FootAbsolutePosition> &RightFootAbsolutePositions)=0;
virtual void EndPhaseOfTheWalking
(deque<ZMPPosition> &ZMPPositions,
deque<COMState> &FinalCOMStates,
deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
deque<FootAbsolutePosition> &RightFootAbsolutePositions)=0;
/*! @} */
/*! \name Methods specifics to our current implementation.
......@@ -233,25 +254,30 @@ namespace PatternGeneratorJRL
/*! \brief Transfert the computed weights to an Analytical ZMP COG
Trajectory able to generate the appropriate intermediates values.
@param aAZCT: The object to be filled with the appropriate intermediate values.
@param aAZCT: The object to be filled with the appropriate
intermediate values.
@param lCoMZ: The height trajectory of the CoM.
@param lZMPZ: The height trajectory of the ZMP.
@param lZMPInit: The initial value of the ZMP for this trajectory along the axis.
@param lZMPEnd: The final value of the ZMP for this trajectory along the axis.
@param InitializeaAZCT: If set to true this variable trigger the initialization
@param lZMPInit: The initial value of the ZMP for
this trajectory along the axis.
@param lZMPEnd: The final value of the ZMP for
this trajectory along the axis.
@param InitializeaAZCT: If set to true this variable trigger
the initialization
of the object aAZCT, does nothing otherwise.
*/
virtual void TransfertTheCoefficientsToTrajectories(AnalyticalZMPCOGTrajectory
&aAZCT,
std::vector<double> &lCoMZ,
std::vector<double> &lZMPZ,
double &lZMPInit,
double &lZMPEnd,
bool InitializeaAZCT) =0 ;
virtual void TransfertTheCoefficientsToTrajectories
(AnalyticalZMPCOGTrajectory &aAZCT,
std::vector<double> &lCoMZ,
std::vector<double> &lZMPZ,
double &lZMPInit,
double &lZMPEnd,
bool InitializeaAZCT) =0 ;
/*! @} */
/*! \brief Initialize automatically Polynomial degrees, and temporal intervals.
/*! \brief Initialize automatically Polynomial degrees,
and temporal intervals.
@return True if succeedeed, false otherwise.
*/
virtual bool InitializeBasicVariables()=0;
......@@ -300,7 +326,8 @@ namespace PatternGeneratorJRL
/*! \name Control variables.
@{. */
/*! \brief Number of steps ($NbSteps$) on which the polynomials coefficients are computed.
/*! \brief Number of steps ($NbSteps$) on which the polynomials
coefficients are computed.
*/
int m_NumberOfStepsInAdvance;
......
......@@ -21,16 +21,18 @@
* Research carried out within the scope of the
* Joint Japanese-French Robotics Laboratory (JRL)
*/
/*! \file This object filters an analytical ZMP trajectory through preview control. */
/*! \file This object filters an analytical ZMP trajectory through
preview control. */
#include <iostream>
#include <fstream>
#include "Debug.hh"
#include <ZMPRefTrajectoryGeneration/FilteringAnalyticalTrajectoryByPreviewControl.hh>
#include "FilteringAnalyticalTrajectoryByPreviewControl.hh"
using namespace PatternGeneratorJRL;
FilteringAnalyticalTrajectoryByPreviewControl::FilteringAnalyticalTrajectoryByPreviewControl
FilteringAnalyticalTrajectoryByPreviewControl::
FilteringAnalyticalTrajectoryByPreviewControl
(SimplePluginManager *lSPM,
AnalyticalZMPCOGTrajectory* lAnalyticalZMPCOGTrajectory,
PreviewControl * lPreviewControl) : SimplePlugin(lSPM)
......@@ -75,15 +77,17 @@ FilteringAnalyticalTrajectoryByPreviewControl::FilteringAnalyticalTrajectoryByPr
}
void FilteringAnalyticalTrajectoryByPreviewControl::SetAnalyticalTrajectory(
AnalyticalZMPCOGTrajectory *lAZCT)
void FilteringAnalyticalTrajectoryByPreviewControl::
SetAnalyticalTrajectory
(AnalyticalZMPCOGTrajectory *lAZCT)
{
m_AnalyticalZMPCOGTrajectory = lAZCT;
}
void FilteringAnalyticalTrajectoryByPreviewControl::SetPreviewControl(
PreviewControl *lPreviewControl)
void FilteringAnalyticalTrajectoryByPreviewControl::
SetPreviewControl
( PreviewControl *lPreviewControl)
{
m_PreviewControl = lPreviewControl;
......@@ -107,19 +111,22 @@ void FilteringAnalyticalTrajectoryByPreviewControl::Resize()
unsigned int DataBufferSize = (unsigned int ) ((m_Tsingle
+m_PreviewControlTime)/
m_SamplingPeriod);
ODEBUG3("m_Tsingle: " << m_Tsingle << " DataBufferSize:" << DataBufferSize);
ODEBUG3("m_Tsingle: " << m_Tsingle << " DataBufferSize:"
<< DataBufferSize);
m_DataBuffer.resize(DataBufferSize);
}
#endif
}
FilteringAnalyticalTrajectoryByPreviewControl::~FilteringAnalyticalTrajectoryByPreviewControl()
FilteringAnalyticalTrajectoryByPreviewControl::
~FilteringAnalyticalTrajectoryByPreviewControl()
{
}
bool FilteringAnalyticalTrajectoryByPreviewControl::FillInWholeBuffer(
double FirstValueofZMPProfil,
double DeltaTj0 )
bool FilteringAnalyticalTrajectoryByPreviewControl::
FillInWholeBuffer
(double FirstValueofZMPProfil,
double DeltaTj0 )
{
ODEBUG("m_PreviewControl : " << m_PreviewControl <<
" m_AnalyticalZMPCOGTrajectory : " << m_AnalyticalZMPCOGTrajectory);
......@@ -128,8 +135,8 @@ bool FilteringAnalyticalTrajectoryByPreviewControl::FillInWholeBuffer(
return false;
if (!m_PreviewControl->IsCoherent())
m_PreviewControl->ComputeOptimalWeights(
OptimalControllerSolver::MODE_WITH_INITIALPOS);
m_PreviewControl->ComputeOptimalWeights
( OptimalControllerSolver::MODE_WITH_INITIALPOS);
m_Duration = DeltaTj0;
......@@ -137,7 +144,8 @@ bool FilteringAnalyticalTrajectoryByPreviewControl::FillInWholeBuffer(
m_StartingTime = m_AnalyticalZMPCOGTrajectory->GetAbsoluteTimeReference();
double DeltaT = m_PreviewControl->SamplingPeriod();
unsigned int SizeOfBuffer = (unsigned int)((DeltaTj0+PreviewWindowTime)/DeltaT);
unsigned int SizeOfBuffer = (unsigned int)((DeltaTj0+PreviewWindowTime)
/DeltaT);
ODEBUG("SizeOfBuffer: " <<SizeOfBuffer<< " Duration : "<<m_Duration);
if (m_DataBuffer.size()!=SizeOfBuffer)
m_DataBuffer.resize(SizeOfBuffer);
......@@ -182,14 +190,16 @@ bool FilteringAnalyticalTrajectoryByPreviewControl::FillInWholeBuffer(
return true;
}
bool FilteringAnalyticalTrajectoryByPreviewControl::UpdateOneStep(double t,
double &ZMPValue,
double &CoMValue,
double &CoMSpeedValue)
bool FilteringAnalyticalTrajectoryByPreviewControl::
UpdateOneStep
(double t,
double &ZMPValue,
double &CoMValue,
double &CoMSpeedValue)
{
ODEBUG("time:" << t << " m_StartingTime: " <<
m_StartingTime << " " << m_Duration + m_StartingTime << " ( " << m_Duration <<
" ) "
m_StartingTime << " " << m_Duration + m_StartingTime << " ( "
<< m_Duration << " ) "
<< " LBI:" << m_LocalBufferIndex);
if ((t<m_StartingTime) || (t>m_Duration+m_StartingTime) || (m_Duration==0.0))
return false;
......@@ -210,9 +220,10 @@ bool FilteringAnalyticalTrajectoryByPreviewControl::UpdateOneStep(double t,
}
/*! \brief Overloading method of SimplePlugin */
void FilteringAnalyticalTrajectoryByPreviewControl::CallMethod(
std::string &Method,
std::istringstream &strm)
void FilteringAnalyticalTrajectoryByPreviewControl::
CallMethod
(std::string &Method,
std::istringstream &strm)
{
if (Method==":samplingperiod")
{
......
......@@ -21,7 +21,8 @@
* Research carried out within the scope of the
* Joint Japanese-French Robotics Laboratory (JRL)
*/
/*! \file This object filters an analytical ZMP trajectory through preview control. */
/*! \file This object filters an analytical ZMP trajectory through preview
control. */
#ifndef _FILTERING_ANALYTICAL_TRAJECTORY_BY_PREVIEW_CONTROL_H_
#define _FILTERING_ANALYTICAL_TRAJECTORY_BY_PREVIEW_CONTROL_H_
......@@ -40,10 +41,11 @@ namespace PatternGeneratorJRL
public:
/*! \brief Default constructor */
FilteringAnalyticalTrajectoryByPreviewControl(SimplePluginManager * lSPM,
AnalyticalZMPCOGTrajectory * lAnalyticalZMPCOGTrajectory=0,
PreviewControl * lPreviewControl=0);
FilteringAnalyticalTrajectoryByPreviewControl
(SimplePluginManager * lSPM,
AnalyticalZMPCOGTrajectory * lAnalyticalZMPCOGTrajectory=0,
PreviewControl * lPreviewControl=0);
/*! \brief Set Analytical trajectory */
void SetAnalyticalTrajectory(AnalyticalZMPCOGTrajectory *lAZCT);
......@@ -54,7 +56,8 @@ namespace PatternGeneratorJRL
This has to be done if the analytical trajectory has been changed,
and that the first interval has been changed.
\param FistValueOfZMPProfil: The first value of the desired ZMP interval.
\param DeltaTj0: Value of the time interval during which the filter is applied.
\param DeltaTj0: Value of the time interval during which the filter
is applied.
\return false if a problem occured, true otherwise.
*/
bool FillInWholeBuffer(double FirstValueofZMPProfil,
......
......@@ -58,11 +58,16 @@ namespace PatternGeneratorJRL
/// \}
/// \brief Preview feet and trunk orientations inside the preview window
/// The orientations of the feet are adapted to the previewed orientation of the hip.
/// The resulting velocities accelerations and orientations are verified against the limits.
/// If the constraints can not be satisfied the rotational velocity of the trunk is reduced.
/// The trunk is rotating with a constant speed after a constant acceleration phase of T_ length.
/// During the initial double support phase the trunk is not rotating contrary to the following.
/// The orientations of the feet are adapted to the previewed orientation
/// of the hip.
/// The resulting velocities accelerations and orientations are verified
/// against the limits.
/// If the constraints can not be satisfied the rotational velocity
/// of the trunk is reduced.
/// The trunk is rotating with a constant speed after a constant
/// acceleration phase of T_ length.
/// During the initial double support phase the trunk is not rotating
/// contrary to the following.
///
/// \param[in] Time
/// \param[in] Ref
......@@ -70,12 +75,13 @@ namespace PatternGeneratorJRL
/// \param[in] LeftFootPositions_deq
/// \param[in] RightFootPositions_deq
/// \param[out] Solution Trunk and Foot orientations
void preview_orientations(double Time,
const reference_t & Ref,
double StepDuration,
const std::deque<FootAbsolutePosition> & LeftFootPositions_deq,
const std::deque<FootAbsolutePosition> & RightFootPositions_deq,
solution_t & Solution);
void preview_orientations
(double Time,
const reference_t & Ref,
double StepDuration,
const std::deque<FootAbsolutePosition> & LeftFootPositions_deq,
const std::deque<FootAbsolutePosition> & RightFootPositions_deq,
solution_t & Solution);
/// \brief Interpolate previewed orientation of the trunk
///
......@@ -84,11 +90,12 @@ namespace PatternGeneratorJRL
/// \param[in] NewSamplingPeriod
/// \param[in] PrwSupportStates_deq
/// \param[out] FinalCOMTraj_deq
void interpolate_trunk_orientation(double Time,
int CurrentIndex,
double NewSamplingPeriod,
const std::deque<support_state_t> & PrwSupportStates_deq,
std::deque<COMState> & FinalCOMTraj_deq);
void interpolate_trunk_orientation
(double Time,
int CurrentIndex,
double NewSamplingPeriod,
const std::deque<support_state_t> & PrwSupportStates_deq,
std::deque<COMState> & FinalCOMTraj_deq);
/// \brief Compute the current state for the preview of the orientation
///
......@@ -97,9 +104,10 @@ namespace PatternGeneratorJRL
/// \param[in] NewSamplingPeriod
/// \param[in] PrwSupportStates_deq
/// \param[out] FinalCOMTraj_deq
void one_iteration(double Time,
const std::deque<support_state_t> & PrwSupportStates_deq);
void one_iteration
(double Time,
const std::deque<support_state_t> & PrwSupportStates_deq);
/// \name Accessors
/// \{
......@@ -150,9 +158,13 @@ namespace PatternGeneratorJRL
//