Trajectory.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2011, Georgia Tech Research Corporation
00003  * All rights reserved.
00004  *
00005  * Author: Tobias Kunz <tobias@gatech.edu>
00006  * Date: 10/2011
00007  *
00008  * Humanoid Robotics Lab      Georgia Institute of Technology
00009  * Director: Mike Stilman     http://www.golems.org
00010  *
00011  * Algorithm details and publications:
00012  * http://www.golems.org/node/1570
00013  *
00014  * This file is provided under the following "BSD-style" License:
00015  *   Redistribution and use in source and binary forms, with or
00016  *   without modification, are permitted provided that the following
00017  *   conditions are met:
00018  *   * Redistributions of source code must retain the above copyright
00019  *     notice, this list of conditions and the following disclaimer.
00020  *   * Redistributions in binary form must reproduce the above
00021  *     copyright notice, this list of conditions and the following
00022  *     disclaimer in the documentation and/or other materials provided
00023  *     with the distribution.
00024  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
00025  *   CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
00026  *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00027  *   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00028  *   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
00029  *   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00030  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00031  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
00032  *   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
00033  *   AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00034  *   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00035  *   ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00036  *   POSSIBILITY OF SUCH DAMAGE.
00037  */
00038 
00039 #ifndef PARABOLIC_BLEND_SMOOTHER_H_
00040 #define PARABOLIC_BLEND_SMOOTHER_H_
00041 
00042 #include <list>
00043 #include <vector>
00044 #include <Eigen/Core>
00045 
00046 namespace ParabolicBlend {
00047 
00048 class Trajectory
00049 {
00050 public:
00051         Trajectory(const std::list<Eigen::VectorXd> &path, const Eigen::VectorXd &maxVelocity, const Eigen::VectorXd &maxAcceleration, double minWayPointSeparation = 0.0);
00052         Eigen::VectorXd getPosition(double time) const;
00053         Eigen::VectorXd getVelocity(double time) const;
00054         double getDuration() const;
00055 private:
00056         std::vector<Eigen::VectorXd> path;
00057         std::vector<Eigen::VectorXd> velocities;
00058         std::vector<Eigen::VectorXd> accelerations;
00059         std::vector<double> durations;
00060         std::vector<double> blendDurations;
00061         double duration;
00062 };
00063 
00064 }
00065 
00066 #endif


constraint_aware_spline_smoother
Author(s): Sachin Chitta
autogenerated on Thu Dec 12 2013 11:10:27