#include <chomp_optimizer.h>
Public Member Functions | |
ChompOptimizer (ChompTrajectory *trajectory, const planning_scene::PlanningSceneConstPtr &planning_scene, const std::string &planning_group, const ChompParameters *parameters, const planning_models::RobotState &start_state) | |
void | destroy () |
bool | isInitialized () const |
void | optimize () |
virtual | ~ChompOptimizer () |
Private Member Functions | |
void | addIncrementsToTrajectory () |
void | calculateCollisionIncrements () |
void | calculatePseudoInverse () |
void | calculateSmoothnessIncrements () |
void | calculateTotalIncrements () |
void | computeJointProperties (int trajectoryPoint) |
void | debugCost () |
double | getCollisionCost () |
template<typename Derived > | |
void | getJacobian (int trajectoryPoint, Eigen::Vector3d &collision_point_pos, std::string &jointName, Eigen::MatrixBase< Derived > &jacobian) const |
double | getPotential (double field_distance, double radius, double clearence) |
void | getRandomMomentum () |
double | getSmoothnessCost () |
double | getTrajectoryCost () |
void | handleJointLimits () |
void | initialize () |
bool | isCurrentTrajectoryMeshToMeshCollisionFree () const |
bool | isParent (const std::string &childLink, const std::string &parentLink) const |
void | performForwardKinematics () |
void | perturbTrajectory () |
void | registerParents (const planning_models::RobotModel::JointModel *model) |
void | setRobotStateFromPoint (ChompTrajectory &group_trajectory, int i) |
void | updateFullTrajectory () |
void | updateMomentum () |
void | updatePositionFromMomentum () |
Private Attributes | |
Eigen::MatrixXd | best_group_trajectory_ |
double | best_group_trajectory_cost_ |
unsigned int | collision_free_iteration_ |
Eigen::MatrixXd | collision_increments_ |
std::vector< std::vector < Eigen::Vector3d > > | collision_point_acc_eigen_ |
std::vector< std::vector < std::string > > | collision_point_joint_names_ |
std::vector< std::vector < Eigen::Vector3d > > | collision_point_pos_eigen_ |
std::vector< std::vector < double > > | collision_point_potential_ |
std::vector< std::vector < Eigen::Vector3d > > | collision_point_potential_gradient_ |
std::vector< std::vector < Eigen::Vector3d > > | collision_point_vel_eigen_ |
std::vector< std::vector < double > > | collision_point_vel_mag_ |
Eigen::MatrixXd | final_increments_ |
int | free_vars_end_ |
int | free_vars_start_ |
ChompTrajectory * | full_trajectory_ |
ChompTrajectory | group_trajectory_ |
Eigen::MatrixXd | group_trajectory_backup_ |
boost::shared_ptr < collision_detection::GroupStateRepresentation > | gsr_ |
const collision_detection::CollisionRobotHybrid * | hy_robot_ |
const collision_detection::CollisionWorldHybrid * | hy_world_ |
bool | initialized_ |
bool | is_collision_free_ |
int | iteration_ |
Eigen::MatrixXd | jacobian_ |
Eigen::MatrixXd | jacobian_jacobian_tranpose_ |
Eigen::MatrixXd | jacobian_pseudo_inverse_ |
std::vector< std::vector < Eigen::Vector3d > > | joint_axes_ |
std::vector< ChompCost > | joint_costs_ |
const planning_models::RobotModel::JointModelGroup * | joint_model_group_ |
std::vector< std::string > | joint_names_ |
std::map< std::string, std::map< std::string, bool > > | joint_parent_map_ |
std::vector< std::vector < Eigen::Vector3d > > | joint_positions_ |
Eigen::VectorXd | joint_state_velocities_ |
const planning_models::RobotModelConstPtr & | kmodel_ |
int | last_improvement_iteration_ |
Eigen::MatrixXd | momentum_ |
std::vector< MultivariateGaussian > | multivariate_gaussian_ |
unsigned int | num_collision_free_iterations_ |
int | num_collision_points_ |
int | num_joints_ |
int | num_vars_all_ |
int | num_vars_free_ |
const ChompParameters * | parameters_ |
std::string | planning_group_ |
planning_scene::PlanningSceneConstPtr | planning_scene_ |
std::vector< std::vector< int > > | point_is_in_collision_ |
Eigen::VectorXd | random_joint_momentum_ |
Eigen::MatrixXd | random_momentum_ |
Eigen::VectorXd | random_state_ |
Eigen::VectorXd | smoothness_derivative_ |
Eigen::MatrixXd | smoothness_increments_ |
planning_models::RobotState * | start_state_ |
planning_models::RobotState * | state_ |
std::vector< int > | state_is_in_collision_ |
double | stochasticity_factor_ |
double | worst_collision_cost_state_ |
Definition at line 57 of file chomp_optimizer.h.
chomp::ChompOptimizer::ChompOptimizer | ( | ChompTrajectory * | trajectory, |
const planning_scene::PlanningSceneConstPtr & | planning_scene, | ||
const std::string & | planning_group, | ||
const ChompParameters * | parameters, | ||
const planning_models::RobotState & | start_state | ||
) |
Definition at line 52 of file chomp_optimizer.cpp.
chomp::ChompOptimizer::~ChompOptimizer | ( | ) | [virtual] |
Definition at line 269 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::addIncrementsToTrajectory | ( | ) | [private] |
Definition at line 684 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::calculateCollisionIncrements | ( | ) | [private] |
Definition at line 590 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::calculatePseudoInverse | ( | ) | [private] |
Definition at line 666 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::calculateSmoothnessIncrements | ( | ) | [private] |
Definition at line 580 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::calculateTotalIncrements | ( | ) | [private] |
Definition at line 673 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::computeJointProperties | ( | int | trajectoryPoint | ) | [private] |
Definition at line 758 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::debugCost | ( | ) | [private] |
Definition at line 709 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::destroy | ( | ) | [inline] |
Definition at line 70 of file chomp_optimizer.h.
double chomp::ChompOptimizer::getCollisionCost | ( | ) | [private] |
Definition at line 732 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::getJacobian | ( | int | trajectoryPoint, |
Eigen::Vector3d & | collision_point_pos, | ||
std::string & | jointName, | ||
Eigen::MatrixBase< Derived > & | jacobian | ||
) | const [private] |
Definition at line 800 of file chomp_optimizer.cpp.
double chomp::ChompOptimizer::getPotential | ( | double | field_distance, |
double | radius, | ||
double | clearence | ||
) | [inline, private] |
Definition at line 81 of file chomp_optimizer.h.
void chomp::ChompOptimizer::getRandomMomentum | ( | ) | [private] |
Definition at line 1094 of file chomp_optimizer.cpp.
double chomp::ChompOptimizer::getSmoothnessCost | ( | ) | [private] |
Definition at line 722 of file chomp_optimizer.cpp.
double chomp::ChompOptimizer::getTrajectoryCost | ( | ) | [private] |
Definition at line 717 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::handleJointLimits | ( | ) | [private] |
Definition at line 827 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::initialize | ( | ) | [private] |
Definition at line 83 of file chomp_optimizer.cpp.
bool chomp::ChompOptimizer::isCurrentTrajectoryMeshToMeshCollisionFree | ( | ) | const [private] |
Definition at line 534 of file chomp_optimizer.cpp.
bool chomp::ChompOptimizer::isInitialized | ( | ) | const [inline] |
Definition at line 75 of file chomp_optimizer.h.
bool chomp::ChompOptimizer::isParent | ( | const std::string & | childLink, |
const std::string & | parentLink | ||
) | const [inline, private] |
Definition at line 186 of file chomp_optimizer.h.
void chomp::ChompOptimizer::optimize | ( | ) |
Definition at line 306 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::performForwardKinematics | ( | ) | [private] |
Definition at line 906 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::perturbTrajectory | ( | ) | [private] |
Definition at line 1020 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::registerParents | ( | const planning_models::RobotModel::JointModel * | model | ) | [private] |
Definition at line 274 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::setRobotStateFromPoint | ( | ChompTrajectory & | group_trajectory, |
int | i | ||
) | [private] |
Definition at line 1004 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::updateFullTrajectory | ( | ) | [private] |
Definition at line 704 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::updateMomentum | ( | ) | [private] |
Definition at line 1106 of file chomp_optimizer.cpp.
void chomp::ChompOptimizer::updatePositionFromMomentum | ( | ) | [private] |
Definition at line 1117 of file chomp_optimizer.cpp.
Eigen::MatrixXd chomp::ChompOptimizer::best_group_trajectory_ [private] |
Definition at line 154 of file chomp_optimizer.h.
double chomp::ChompOptimizer::best_group_trajectory_cost_ [private] |
Definition at line 155 of file chomp_optimizer.h.
unsigned int chomp::ChompOptimizer::collision_free_iteration_ [private] |
Definition at line 126 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::collision_increments_ [private] |
Definition at line 172 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d > > chomp::ChompOptimizer::collision_point_acc_eigen_ [private] |
Definition at line 147 of file chomp_optimizer.h.
std::vector<std::vector<std::string> > chomp::ChompOptimizer::collision_point_joint_names_ [private] |
Definition at line 144 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d > > chomp::ChompOptimizer::collision_point_pos_eigen_ [private] |
Definition at line 145 of file chomp_optimizer.h.
std::vector<std::vector<double> > chomp::ChompOptimizer::collision_point_potential_ [private] |
Definition at line 148 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d> > chomp::ChompOptimizer::collision_point_potential_gradient_ [private] |
Definition at line 150 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d > > chomp::ChompOptimizer::collision_point_vel_eigen_ [private] |
Definition at line 146 of file chomp_optimizer.h.
std::vector<std::vector<double> > chomp::ChompOptimizer::collision_point_vel_mag_ [private] |
Definition at line 149 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::final_increments_ [private] |
Definition at line 173 of file chomp_optimizer.h.
int chomp::ChompOptimizer::free_vars_end_ [private] |
Definition at line 124 of file chomp_optimizer.h.
int chomp::ChompOptimizer::free_vars_start_ [private] |
Definition at line 123 of file chomp_optimizer.h.
Definition at line 128 of file chomp_optimizer.h.
Definition at line 132 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::group_trajectory_backup_ [private] |
Definition at line 153 of file chomp_optimizer.h.
boost::shared_ptr<collision_detection::GroupStateRepresentation> chomp::ChompOptimizer::gsr_ [private] |
Definition at line 141 of file chomp_optimizer.h.
const collision_detection::CollisionRobotHybrid* chomp::ChompOptimizer::hy_robot_ [private] |
Definition at line 138 of file chomp_optimizer.h.
const collision_detection::CollisionWorldHybrid* chomp::ChompOptimizer::hy_world_ [private] |
Definition at line 137 of file chomp_optimizer.h.
bool chomp::ChompOptimizer::initialized_ [private] |
Definition at line 142 of file chomp_optimizer.h.
bool chomp::ChompOptimizer::is_collision_free_ [private] |
Definition at line 168 of file chomp_optimizer.h.
int chomp::ChompOptimizer::iteration_ [private] |
Definition at line 125 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::jacobian_ [private] |
Definition at line 177 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::jacobian_jacobian_tranpose_ [private] |
Definition at line 179 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::jacobian_pseudo_inverse_ [private] |
Definition at line 178 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d> > chomp::ChompOptimizer::joint_axes_ [private] |
Definition at line 151 of file chomp_optimizer.h.
std::vector<ChompCost> chomp::ChompOptimizer::joint_costs_ [private] |
Definition at line 140 of file chomp_optimizer.h.
const planning_models::RobotModel::JointModelGroup* chomp::ChompOptimizer::joint_model_group_ [private] |
Definition at line 136 of file chomp_optimizer.h.
std::vector<std::string> chomp::ChompOptimizer::joint_names_ [private] |
Definition at line 183 of file chomp_optimizer.h.
std::map<std::string, std::map<std::string, bool> > chomp::ChompOptimizer::joint_parent_map_ [private] |
Definition at line 184 of file chomp_optimizer.h.
std::vector<std::vector<Eigen::Vector3d> > chomp::ChompOptimizer::joint_positions_ [private] |
Definition at line 152 of file chomp_optimizer.h.
Eigen::VectorXd chomp::ChompOptimizer::joint_state_velocities_ [private] |
Definition at line 181 of file chomp_optimizer.h.
const planning_models::RobotModelConstPtr& chomp::ChompOptimizer::kmodel_ [private] |
Definition at line 129 of file chomp_optimizer.h.
int chomp::ChompOptimizer::last_improvement_iteration_ [private] |
Definition at line 156 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::momentum_ [private] |
Definition at line 160 of file chomp_optimizer.h.
std::vector<MultivariateGaussian> chomp::ChompOptimizer::multivariate_gaussian_ [private] |
Definition at line 163 of file chomp_optimizer.h.
unsigned int chomp::ChompOptimizer::num_collision_free_iterations_ [private] |
Definition at line 157 of file chomp_optimizer.h.
int chomp::ChompOptimizer::num_collision_points_ [private] |
Definition at line 122 of file chomp_optimizer.h.
int chomp::ChompOptimizer::num_joints_ [private] |
Definition at line 119 of file chomp_optimizer.h.
int chomp::ChompOptimizer::num_vars_all_ [private] |
Definition at line 121 of file chomp_optimizer.h.
int chomp::ChompOptimizer::num_vars_free_ [private] |
Definition at line 120 of file chomp_optimizer.h.
const ChompParameters* chomp::ChompOptimizer::parameters_ [private] |
Definition at line 131 of file chomp_optimizer.h.
std::string chomp::ChompOptimizer::planning_group_ [private] |
Definition at line 130 of file chomp_optimizer.h.
Definition at line 133 of file chomp_optimizer.h.
std::vector<std::vector<int> > chomp::ChompOptimizer::point_is_in_collision_ [private] |
Definition at line 167 of file chomp_optimizer.h.
Eigen::VectorXd chomp::ChompOptimizer::random_joint_momentum_ [private] |
Definition at line 162 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::random_momentum_ [private] |
Definition at line 161 of file chomp_optimizer.h.
Eigen::VectorXd chomp::ChompOptimizer::random_state_ [private] |
Definition at line 180 of file chomp_optimizer.h.
Eigen::VectorXd chomp::ChompOptimizer::smoothness_derivative_ [private] |
Definition at line 176 of file chomp_optimizer.h.
Eigen::MatrixXd chomp::ChompOptimizer::smoothness_increments_ [private] |
Definition at line 171 of file chomp_optimizer.h.
planning_models::RobotState* chomp::ChompOptimizer::start_state_ [private] |
Definition at line 135 of file chomp_optimizer.h.
planning_models::RobotState* chomp::ChompOptimizer::state_ [private] |
Definition at line 134 of file chomp_optimizer.h.
std::vector<int> chomp::ChompOptimizer::state_is_in_collision_ [private] |
Array containing a boolean about collision info for each point in the trajectory
Definition at line 166 of file chomp_optimizer.h.
double chomp::ChompOptimizer::stochasticity_factor_ [private] |
Definition at line 164 of file chomp_optimizer.h.
double chomp::ChompOptimizer::worst_collision_cost_state_ [private] |
Definition at line 169 of file chomp_optimizer.h.