diff --git a/halfsteps_pattern_generator/include/halfsteps_pattern_generator.hh b/halfsteps_pattern_generator/include/halfsteps_pattern_generator.hh index f934103..daa298b 100644 --- a/halfsteps_pattern_generator/include/halfsteps_pattern_generator.hh +++ b/halfsteps_pattern_generator/include/halfsteps_pattern_generator.hh @@ -20,10 +20,31 @@ struct WithHalfStepsAdditionalData : public T double stepHeight; }; -typedef WithHalfStepsAdditionalData footprint_t; -typedef walk::PatternGenerator halfStepsPgParent_t; +class HalfStepsPatternGenerator; -class HalfStepsPatternGenerator : public halfStepsPgParent_t +namespace walk +{ + template <> + struct PatternGeneratorTraits + { + /// \brief Footprint definition. + typedef WithHalfStepsAdditionalData Footprint; + + /// \brief Trajectory in \f$SO(3)\f$. + typedef DiscretizedTrajectory Trajectory3d; + /// \brief Trajectory in \f$SO(2)\f$. + typedef DiscretizedTrajectory Trajectory2d; + /// \brief Trajectory in \f$R^2\f$. + typedef DiscretizedTrajectory TrajectoryV2d; + /// \brief Trajectory in \f$R^3\f$. + typedef DiscretizedTrajectory TrajectoryV3d; + /// \brief Trajectory in \f$R^n\f$. + typedef DiscretizedTrajectory TrajectoryNd; + }; +} // end of namespace walk. + +class HalfStepsPatternGenerator + : public walk::PatternGenerator { public: explicit HalfStepsPatternGenerator diff --git a/halfsteps_pattern_generator/include/yaml.hh b/halfsteps_pattern_generator/include/yaml.hh index 5d441b3..f03176a 100644 --- a/halfsteps_pattern_generator/include/yaml.hh +++ b/halfsteps_pattern_generator/include/yaml.hh @@ -4,10 +4,13 @@ # include # include +# include + namespace walk { inline YAML::Emitter& - operator<< (YAML::Emitter& out, const footprint_t& footprint) + operator<< (YAML::Emitter& out, + const HalfStepsPatternGenerator::footprint_t& footprint) { out << YAML::BeginMap << YAML::Key << "beginTime" @@ -36,17 +39,20 @@ namespace walk inline YAML::Emitter& operator<< (YAML::Emitter& out, - const WALK_INTERFACES_EIGEN_STL_VECTOR(footprint_t)& footprints) + const WALK_INTERFACES_EIGEN_STL_VECTOR + (HalfStepsPatternGenerator::footprint_t)& footprints) { out << YAML::BeginSeq; - BOOST_FOREACH (const footprint_t& footprint, footprints) + typedef HalfStepsPatternGenerator::footprint_t a_t; + BOOST_FOREACH (const a_t& footprint, footprints) out << footprint; out << YAML::EndSeq; return out; } inline void - operator>> (const YAML::Node& node, footprint_t& footprint) + operator>> (const YAML::Node& node, + HalfStepsPatternGenerator::footprint_t& footprint) { checkYamlType (node, YAML::NodeType::Map, "footprint"); diff --git a/halfsteps_pattern_generator/src/libhalfsteps_pattern_generator/halfsteps_pattern_generator.cpp b/halfsteps_pattern_generator/src/libhalfsteps_pattern_generator/halfsteps_pattern_generator.cpp index 9822137..d3243c0 100644 --- a/halfsteps_pattern_generator/src/libhalfsteps_pattern_generator/halfsteps_pattern_generator.cpp +++ b/halfsteps_pattern_generator/src/libhalfsteps_pattern_generator/halfsteps_pattern_generator.cpp @@ -18,7 +18,7 @@ HalfStepsPatternGenerator::HalfStepsPatternGenerator (const double& timeBeforeZmpShift, const double& timeAfterZmpShift, const double& step) - : halfStepsPgParent_t(), + : walk::PatternGenerator(), timeBeforeZmpShift_(timeBeforeZmpShift), timeAfterZmpShift_(timeAfterZmpShift), step_(step) @@ -26,7 +26,7 @@ HalfStepsPatternGenerator::HalfStepsPatternGenerator HalfStepsPatternGenerator::HalfStepsPatternGenerator (const HalfStepsPatternGenerator& pg) - : halfStepsPgParent_t(), + : walk::PatternGenerator(), timeBeforeZmpShift_(pg.timeBeforeZmpShift_), timeAfterZmpShift_(pg.timeAfterZmpShift_), step_(pg.step_) diff --git a/walk_interfaces/include/walk_interfaces/trajectory.hh b/walk_interfaces/include/walk_interfaces/discretized-trajectory.hh similarity index 59% rename from walk_interfaces/include/walk_interfaces/trajectory.hh rename to walk_interfaces/include/walk_interfaces/discretized-trajectory.hh index fe03dd2..dfc0139 100644 --- a/walk_interfaces/include/walk_interfaces/trajectory.hh +++ b/walk_interfaces/include/walk_interfaces/discretized-trajectory.hh @@ -1,5 +1,5 @@ -#ifndef WALK_INTERFACE_STAMPED_TRAJECTORY_HH -# define WALK_INTERFACE_STAMPED_TRAJECTORY_HH +#ifndef WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HH +# define WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HH # include # include @@ -20,7 +20,7 @@ namespace walk /// /// \tparam T Trajectory output type. template - class Trajectory + class DiscretizedTrajectory { public: /// \brief Trajectory element. @@ -32,16 +32,16 @@ namespace walk /// \{ /// \brief Default constructor. - explicit Trajectory(); + explicit DiscretizedTrajectory(); /// \brief Copy constructor. - explicit Trajectory(const Trajectory&); + explicit DiscretizedTrajectory(const DiscretizedTrajectory&); /// \brief Destructor. - ~Trajectory(); + ~DiscretizedTrajectory(); /// \} /// \brief Assignment operator. - Trajectory& operator=(const Trajectory&); + DiscretizedTrajectory& operator=(const DiscretizedTrajectory&); /// \brief Trajectory data getter. data_t& data(); @@ -62,16 +62,16 @@ namespace walk EIGEN_MAKE_ALIGNED_OPERATOR_NEW; }; - /// \brief Trajectory in \f$SO(3)\f$. - typedef Trajectory Trajectory3d; - /// \brief Trajectory in \f$SO(2)\f$. - typedef Trajectory Trajectory2d; - /// \brief Trajectory in \f$R^2\f$. - typedef Trajectory TrajectoryV2d; - /// \brief Trajectory in \f$R^3\f$. - typedef Trajectory TrajectoryV3d; - /// \brief Trajectory in \f$R^n\f$. - typedef Trajectory TrajectoryNd; + /// \brief DiscretizedTrajectory in \f$SO(3)\f$. + typedef DiscretizedTrajectory DiscretizedTrajectory3d; + /// \brief DiscretizedTrajectory in \f$SO(2)\f$. + typedef DiscretizedTrajectory DiscretizedTrajectory2d; + /// \brief DiscretizedTrajectory in \f$R^2\f$. + typedef DiscretizedTrajectory DiscretizedTrajectoryV2d; + /// \brief DiscretizedTrajectory in \f$R^3\f$. + typedef DiscretizedTrajectory DiscretizedTrajectoryV3d; + /// \brief DiscretizedTrajectory in \f$R^n\f$. + typedef DiscretizedTrajectory DiscretizedTrajectoryNd; /// \brief Display a trajectory. /// @@ -79,9 +79,9 @@ namespace walk /// \param trajectory Displayed trajectory template std::ostream& operator<<(std::ostream& stream, - const Trajectory& trajectory); + const DiscretizedTrajectory& trajectory); } // end of namespace walk. -# include -#endif //! WALK_INTERFACE_STAMPED_TRAJECTORY_HH +# include +#endif //! WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HH diff --git a/walk_interfaces/include/walk_interfaces/trajectory.hxx b/walk_interfaces/include/walk_interfaces/discretized-trajectory.hxx similarity index 50% rename from walk_interfaces/include/walk_interfaces/trajectory.hxx rename to walk_interfaces/include/walk_interfaces/discretized-trajectory.hxx index ad5395b..5545757 100644 --- a/walk_interfaces/include/walk_interfaces/trajectory.hxx +++ b/walk_interfaces/include/walk_interfaces/discretized-trajectory.hxx @@ -1,26 +1,27 @@ -#ifndef WALK_INTERFACE_STAMPED_TRAJECTORY_HXX -# define WALK_INTERFACE_STAMPED_TRAJECTORY_HXX +#ifndef WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HXX +# define WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HXX # include namespace walk { template - Trajectory::Trajectory() + DiscretizedTrajectory::DiscretizedTrajectory() : data_() {} template - Trajectory::Trajectory(const Trajectory& gamma) + DiscretizedTrajectory::DiscretizedTrajectory + (const DiscretizedTrajectory& gamma) : data_(gamma.data_) {} template - Trajectory::~Trajectory() + DiscretizedTrajectory::~DiscretizedTrajectory() {} template - Trajectory& - Trajectory::operator=(const Trajectory& gamma) + DiscretizedTrajectory& + DiscretizedTrajectory::operator=(const DiscretizedTrajectory& gamma) { if (&gamma == this) return *this; @@ -29,22 +30,22 @@ namespace walk } template - typename Trajectory::data_t& - Trajectory::data() + typename DiscretizedTrajectory::data_t& + DiscretizedTrajectory::data() { return data_; } template - const typename Trajectory::data_t& - Trajectory::data() const + const typename DiscretizedTrajectory::data_t& + DiscretizedTrajectory::data() const { return data_; } template TimeDuration - Trajectory::computeLength() const + DiscretizedTrajectory::computeLength() const { TimeDuration length; typename data_t::const_iterator iter = data_.begin (); @@ -55,9 +56,9 @@ namespace walk template std::ostream& - operator<<(std::ostream& os, const Trajectory& gamma) + operator<<(std::ostream& os, const DiscretizedTrajectory& gamma) { - typename Trajectory::data_t::const_iterator iter = + typename DiscretizedTrajectory::data_t::const_iterator iter = gamma.data().begin (); for (; iter != gamma.data().end(); ++iter) os << (*iter) << std::endl; @@ -65,4 +66,4 @@ namespace walk } } // end of namespace walk. -#endif //! WALK_INTERFACE_STAMPED_TRAJECTORY_HXX +#endif //! WALK_INTERFACE_DISCRETIZED_TRAJECTORY_HXX diff --git a/walk_interfaces/include/walk_interfaces/pattern-generator.hh b/walk_interfaces/include/walk_interfaces/pattern-generator.hh index f73dad1..7428615 100644 --- a/walk_interfaces/include/walk_interfaces/pattern-generator.hh +++ b/walk_interfaces/include/walk_interfaces/pattern-generator.hh @@ -2,8 +2,10 @@ # define WALK_INTERFACE_WALK_HH # include +# include + # include -# include +# include # include namespace walk @@ -11,8 +13,11 @@ namespace walk template class PatternGenerator; - /// \brief Pattern generator expecting 2d footprints as input. - typedef PatternGenerator PatternGenerator2d; + template + struct PatternGeneratorTraits + { + BOOST_STATIC_ASSERT(sizeof(T) == 0); + }; /// \brief A pattern generator computes walking reference /// trajectories. @@ -41,13 +46,33 @@ namespace walk /// algorithm specific. Please see the pattern generator /// documentation for more details. /// - /// \tparam T Footprint type. + /// \tparam T Pattern generator concrete type. template class PatternGenerator { public: + typedef T concreteType_t; + /// \brief Footprint type. - typedef T footprint_t; + typedef typename PatternGeneratorTraits::Footprint + footprint_t; + + /// \brief DiscretizedTrajectory in \f$SO(3)\f$. + typedef typename PatternGeneratorTraits::Trajectory3d + Trajectory3d; + /// \brief DiscretizedTrajectory in \f$SO(3)\f$. + typedef typename PatternGeneratorTraits::Trajectory2d + Trajectory2d; + /// \brief DiscretizedTrajectory in \f$R^2\f$. + typedef typename PatternGeneratorTraits::TrajectoryV2d + TrajectoryV2d; + /// \brief DiscretizedTrajectory in \f$R^3\f$. + typedef typename PatternGeneratorTraits::TrajectoryV3d + TrajectoryV3d; + /// \brief DiscretizedTrajectory in \f$R^n\f$. + typedef typename PatternGeneratorTraits::TrajectoryNd + TrajectoryNd; + /// \brief Vector of footprints. typedef WALK_INTERFACES_EIGEN_STL_VECTOR(footprint_t) footprints_t; @@ -229,6 +254,31 @@ namespace walk std::ostream& operator<<(std::ostream& stream, const PatternGenerator& pg); + + class DiscretizedPatternGenerator2d; + template <> + struct PatternGeneratorTraits + { + /// \brief Footprint definition. + typedef StampedFootprint2d Footprint; + + /// \brief Trajectory in \f$SO(3)\f$. + typedef DiscretizedTrajectory Trajectory3d; + /// \brief Trajectory in \f$SO(2)\f$. + typedef DiscretizedTrajectory Trajectory2d; + /// \brief Trajectory in \f$R^2\f$. + typedef DiscretizedTrajectory TrajectoryV2d; + /// \brief Trajectory in \f$R^3\f$. + typedef DiscretizedTrajectory TrajectoryV3d; + /// \brief Trajectory in \f$R^n\f$. + typedef DiscretizedTrajectory TrajectoryNd; + }; + + + class DiscretizedPatternGenerator2d + : public PatternGenerator + {}; + } // end of namespace walk. # include diff --git a/walk_interfaces/include/walk_interfaces/pattern-generator.hxx b/walk_interfaces/include/walk_interfaces/pattern-generator.hxx index 57bafea..a69671a 100644 --- a/walk_interfaces/include/walk_interfaces/pattern-generator.hxx +++ b/walk_interfaces/include/walk_interfaces/pattern-generator.hxx @@ -36,7 +36,8 @@ namespace walk } template - PatternGenerator::PatternGenerator(const PatternGenerator& pg) + PatternGenerator::PatternGenerator + (const PatternGenerator& pg) : footprints_ (pg.footprints_), startWithLeftFoot_ (pg.startWithLeftFoot_), leftFootTrajectory_(pg.leftFootTrajectory_), @@ -48,7 +49,8 @@ namespace walk template PatternGenerator& - PatternGenerator::operator=(const PatternGenerator& pg) + PatternGenerator::operator= + (const PatternGenerator& pg) { if (&pg == this) return *this; @@ -100,7 +102,8 @@ namespace walk template void - PatternGenerator::setFootprints(const footprints_t& footprints, bool startWithLeftFoot) + PatternGenerator::setFootprints + (const footprints_t& footprints, bool startWithLeftFoot) { footprints_ = footprints; startWithLeftFoot_ = startWithLeftFoot; @@ -119,70 +122,70 @@ namespace walk {} template - const Trajectory3d& + const typename PatternGenerator::Trajectory3d& PatternGenerator::leftFootTrajectory() const { return leftFootTrajectory_; } template - const Trajectory3d& + const typename PatternGenerator::Trajectory3d& PatternGenerator::rightFootTrajectory() const { return rightFootTrajectory_; } template - const TrajectoryV2d& + const typename PatternGenerator::TrajectoryV2d& PatternGenerator::zmpTrajectory() const { return zmpTrajectory_; } template - const TrajectoryV3d& + const typename PatternGenerator::TrajectoryV3d& PatternGenerator::centerOfMassTrajectory() const { return centerOfMassTrajectory_; } template - const TrajectoryNd& + const typename PatternGenerator::TrajectoryNd& PatternGenerator::postureTrajectory() const { return postureTrajectory_; } template - Trajectory3d& + typename PatternGenerator::Trajectory3d& PatternGenerator::getLeftFootTrajectory() { return leftFootTrajectory_; } template - Trajectory3d& + typename PatternGenerator::Trajectory3d& PatternGenerator::getRightFootTrajectory() { return rightFootTrajectory_; } template - TrajectoryV2d& + typename PatternGenerator::TrajectoryV2d& PatternGenerator::getZmpTrajectory() { return zmpTrajectory_; } template - TrajectoryV3d& + typename PatternGenerator::TrajectoryV3d& PatternGenerator::getCenterOfMassTrajectory() { return centerOfMassTrajectory_; } template - TrajectoryNd& + typename PatternGenerator::TrajectoryNd& PatternGenerator::getPostureTrajectory() { return postureTrajectory_; @@ -229,7 +232,7 @@ namespace walk { return finalRightFootPosition_; } - + template Vector3d& PatternGenerator::getFinalCenterOfMassPosition() diff --git a/walk_interfaces/include/walk_interfaces/yaml.hh b/walk_interfaces/include/walk_interfaces/yaml.hh index 4afabda..a515174 100644 --- a/walk_interfaces/include/walk_interfaces/yaml.hh +++ b/walk_interfaces/include/walk_interfaces/yaml.hh @@ -50,27 +50,27 @@ namespace walk /// \} - Trajectory3d& leftFootTrajectory () + typename patternGenerator_t::Trajectory3d& leftFootTrajectory () { return this->getLeftFootTrajectory (); } - Trajectory3d& rightFootTrajectory () + typename patternGenerator_t::Trajectory3d& rightFootTrajectory () { return this->getRightFootTrajectory (); } - TrajectoryV2d& zmpTrajectory () + typename patternGenerator_t::TrajectoryV2d& zmpTrajectory () { return this->getZmpTrajectory (); } - TrajectoryV3d& centerOfMassTrajectory () + typename patternGenerator_t::TrajectoryV3d& centerOfMassTrajectory () { return this->getCenterOfMassTrajectory (); } - TrajectoryNd& postureTrajectory () + typename patternGenerator_t::TrajectoryNd& postureTrajectory () { return this->getPostureTrajectory (); } diff --git a/walk_interfaces/include/walk_interfaces/yaml.hxx b/walk_interfaces/include/walk_interfaces/yaml.hxx index bd3fc40..defffc0 100644 --- a/walk_interfaces/include/walk_interfaces/yaml.hxx +++ b/walk_interfaces/include/walk_interfaces/yaml.hxx @@ -127,7 +127,7 @@ namespace walk template void operator>> (const YAML::Node& node, - Trajectory& trajectory) + DiscretizedTrajectory& trajectory) { checkYamlType (node, YAML::NodeType::Sequence, "trajectory"); @@ -135,7 +135,7 @@ namespace walk for (unsigned i = 0; i < node.size (); ++i) { checkYamlType (node[i], YAML::NodeType::Map, "trajectory element"); - typename Trajectory::element_t stampedPosition; + typename DiscretizedTrajectory::element_t stampedPosition; node[i] >> stampedPosition; trajectory.data ().push_back (stampedPosition); } @@ -301,10 +301,10 @@ namespace walk template YAML::Emitter& - operator<< (YAML::Emitter& out, const Trajectory& trajectory) + operator<< (YAML::Emitter& out, const DiscretizedTrajectory& trajectory) { out << YAML::BeginSeq; - BOOST_FOREACH (const typename Trajectory::element_t& data, + BOOST_FOREACH (const typename DiscretizedTrajectory::element_t& data, trajectory.data ()) out << data; out << YAML::EndSeq; diff --git a/walk_interfaces/test/dummy-pattern-generator.cpp b/walk_interfaces/test/dummy-pattern-generator.cpp index 0d49b31..d56057e 100644 --- a/walk_interfaces/test/dummy-pattern-generator.cpp +++ b/walk_interfaces/test/dummy-pattern-generator.cpp @@ -5,11 +5,11 @@ #include "walk_interfaces/pattern-generator.hh" #include "walk_interfaces/yaml.hh" -class MyPatternGenerator : public walk::PatternGenerator2d +class MyPatternGenerator : public walk::DiscretizedPatternGenerator2d { public: MyPatternGenerator() - : walk::PatternGenerator2d() + : walk::DiscretizedPatternGenerator2d() {} void computeTrajectories() @@ -17,10 +17,10 @@ class MyPatternGenerator : public walk::PatternGenerator2d walk::TimeDuration l = walk::computeFootprintSequenceLength(footprints()); - walk::Trajectory3d& lf = getLeftFootTrajectory(); - walk::Trajectory3d& rf = getRightFootTrajectory(); - walk::TrajectoryV3d& com = getCenterOfMassTrajectory(); - walk::TrajectoryV2d& zmp = getZmpTrajectory(); + Trajectory3d& lf = getLeftFootTrajectory(); + Trajectory3d& rf = getRightFootTrajectory(); + TrajectoryV3d& com = getCenterOfMassTrajectory(); + TrajectoryV2d& zmp = getZmpTrajectory(); lf.data().resize(1); rf.data().resize(1); @@ -35,7 +35,6 @@ class MyPatternGenerator : public walk::PatternGenerator2d lf.data()[0].position = initialLeftFootPosition(); rf.data()[0].position = initialRightFootPosition(); com.data()[0].position = initialCenterOfMassPosition(); - walk::Vector2d initialZmp; initialZmp[0] = initialZmp[1] = 0.; zmp.data()[0].position = initialZmp; @@ -58,7 +57,7 @@ TEST(TestStampedPosition, empty) pg.setFootprints(footprints, true); - const walk::Trajectory3d& lf = pg.leftFootTrajectory(); + const MyPatternGenerator::Trajectory3d& lf = pg.leftFootTrajectory(); walk::TimeDuration lengthLf = lf.computeLength(); diff --git a/walk_interfaces/test/trajectory-3d.cpp b/walk_interfaces/test/trajectory-3d.cpp index 90fda88..262f828 100644 --- a/walk_interfaces/test/trajectory-3d.cpp +++ b/walk_interfaces/test/trajectory-3d.cpp @@ -2,12 +2,12 @@ #include #include -#include "walk_interfaces/trajectory.hh" +#include "walk_interfaces/discretized-trajectory.hh" TEST(TestTrajectory, empty) { - walk::Trajectory3d gamma; - walk::Trajectory3d::data_t data; // empty data. + walk::DiscretizedTrajectory3d gamma; + walk::DiscretizedTrajectory3d::data_t data; // empty data. gamma.data() = data; walk::TimeDuration zero; @@ -18,8 +18,8 @@ TEST(TestTrajectory, simple) { using namespace boost::posix_time; - walk::Trajectory3d gamma; - walk::Trajectory3d::data_t data; // empty data. + walk::DiscretizedTrajectory3d gamma; + walk::DiscretizedTrajectory3d::data_t data; // empty data. data.resize(2); diff --git a/walk_msgs/include/walk_msgs/conversion.hh b/walk_msgs/include/walk_msgs/conversion.hh index b73a0ee..6803392 100644 --- a/walk_msgs/include/walk_msgs/conversion.hh +++ b/walk_msgs/include/walk_msgs/conversion.hh @@ -2,7 +2,7 @@ # define WALK_MSGS_CONVERSION_HH # include -# include +# include # include # include "geometry_msgs/Point.h" @@ -22,21 +22,21 @@ namespace walk_msgs const walk::HomogeneousMatrix3d&); void convertTrajectoryToPath(nav_msgs::Path&, - const walk::Trajectory3d&, + const walk::DiscretizedTrajectory3d&, const std::string& frameName); void convertTrajectoryV2dToPath(walk_msgs::PathPoint2d&, - const walk::TrajectoryV2d&, + const walk::DiscretizedTrajectoryV2d&, const std::string& frameName); void convertTrajectoryV2dToPath(nav_msgs::Path& dst, - const walk::TrajectoryV2d& src, + const walk::DiscretizedTrajectoryV2d& src, const std::string& frameName); void convertTrajectoryV3dToPath(walk_msgs::PathPoint3d& dst, - const walk::TrajectoryV3d& src, + const walk::DiscretizedTrajectoryV3d& src, const std::string& frameName); void convertTrajectoryV3dToPath(nav_msgs::Path& dst, - const walk::TrajectoryV3d& src, + const walk::DiscretizedTrajectoryV3d& src, const std::string& frameName); void convertPointToVector3d(walk::Vector3d& dst, diff --git a/walk_msgs/src/conversion.cpp b/walk_msgs/src/conversion.cpp index 5c3dade..ffa5a90 100644 --- a/walk_msgs/src/conversion.cpp +++ b/walk_msgs/src/conversion.cpp @@ -60,7 +60,7 @@ namespace walk_msgs } void convertTrajectoryToPath(nav_msgs::Path& dst, - const walk::Trajectory3d& src, + const walk::DiscretizedTrajectory3d& src, const std::string& frameName) { std::size_t size = src.data().size(); @@ -98,7 +98,7 @@ namespace walk_msgs } void convertTrajectoryV2dToPath(walk_msgs::PathPoint2d& dst, - const walk::TrajectoryV2d& src, + const walk::DiscretizedTrajectoryV2d& src, const std::string& frameName) { std::size_t size = src.data().size(); @@ -135,7 +135,7 @@ namespace walk_msgs } void convertTrajectoryV3dToPath(walk_msgs::PathPoint3d& dst, - const walk::TrajectoryV3d& src, + const walk::DiscretizedTrajectoryV3d& src, const std::string& frameName) { std::size_t size = src.data().size(); @@ -173,7 +173,7 @@ namespace walk_msgs } void convertTrajectoryV2dToPath(nav_msgs::Path& dst, - const walk::TrajectoryV2d& src, + const walk::DiscretizedTrajectoryV2d& src, const std::string& frameName) { std::size_t size = src.data().size(); @@ -216,7 +216,7 @@ namespace walk_msgs } void convertTrajectoryV3dToPath(nav_msgs::Path& dst, - const walk::TrajectoryV3d& src, + const walk::DiscretizedTrajectoryV3d& src, const std::string& frameName) { std::size_t size = src.data().size(); diff --git a/walk_msgs/src/nodes/generator.cpp b/walk_msgs/src/nodes/generator.cpp index a35308b..ef71586 100644 --- a/walk_msgs/src/nodes/generator.cpp +++ b/walk_msgs/src/nodes/generator.cpp @@ -39,9 +39,10 @@ std::string getParam (const std::string& param, } class GeneratorYamlNode : - public walk_msgs::AbstractNode, - walk_msgs::Footprint2d, - walk_msgs::GetPath> + public walk_msgs::AbstractNode< + walk::YamlReader, + walk_msgs::Footprint2d, + walk_msgs::GetPath> { public: explicit GeneratorYamlNode (); @@ -56,11 +57,13 @@ class GeneratorYamlNode : }; GeneratorYamlNode::GeneratorYamlNode () - : walk_msgs::AbstractNode, - walk_msgs::Footprint2d, - walk_msgs::GetPath> + : walk_msgs::AbstractNode< + walk::YamlReader, + walk_msgs::Footprint2d, + walk_msgs::GetPath> ("", getParam ("~world_frame_id", "/world"), - walk::YamlReader (getParam ("~yaml", "")), + walk::YamlReader + (getParam ("~yaml", "")), false) { walk_msgs::GetPath::Response res;