Go to the documentation of this file.
48 #include <Eigen/StdVector>
57 const std::string& planning_group,
const ChompParameters* parameters,
84 inline double getPotential(
double field_distance,
double radius,
double clearance)
86 double d = field_distance - radius;
94 const double diff = (
d - clearance);
95 const double gradient_magnitude = diff / clearance;
96 return 0.5 * gradient_magnitude * diff;
100 return -
d + 0.5 * clearance;
103 template <
typename Derived>
104 void getJacobian(
int trajectoryPoint, Eigen::Vector3d& collision_point_pos, std::string& jointName,
105 Eigen::MatrixBase<Derived>& jacobian)
const;
136 collision_detection::GroupStateRepresentationPtr
gsr_;
146 std::vector<EigenSTL::vector_Vector3d>
joint_axes_;
182 inline bool isParent(
const std::string& childLink,
const std::string& parentLink)
const
184 if (childLink == parentLink)
195 return (parents.find(parentLink) != parents.end() && parents.at(parentLink));
Represents a discretized joint-space trajectory for CHOMP.
unsigned int num_collision_free_iterations_
Eigen::VectorXd random_state_
Eigen::MatrixXd jacobian_pseudo_inverse_
std::string planning_group_
void getJacobian(int trajectoryPoint, Eigen::Vector3d &collision_point_pos, std::string &jointName, Eigen::MatrixBase< Derived > &jacobian) const
const ChompParameters * parameters_
void addIncrementsToTrajectory()
std::vector< MultivariateGaussian > multivariate_gaussian_
void setRobotStateFromPoint(ChompTrajectory &group_trajectory, int i)
unsigned int collision_free_iteration_
collision_detection::GroupStateRepresentationPtr gsr_
std::vector< std::vector< std::string > > collision_point_joint_names_
const moveit::core::JointModelGroup * joint_model_group_
std::vector< EigenSTL::vector_Vector3d > collision_point_acc_eigen_
Eigen::MatrixXd best_group_trajectory_
std::vector< EigenSTL::vector_Vector3d > collision_point_potential_gradient_
int num_collision_points_
bool isCurrentTrajectoryMeshToMeshCollisionFree() const
void updatePositionFromMomentum()
Eigen::MatrixXd smoothness_increments_
Eigen::VectorXd random_joint_momentum_
double getPotential(double field_distance, double radius, double clearance)
void calculateSmoothnessIncrements()
Eigen::MatrixXd jacobian_jacobian_tranpose_
std::map< std::string, std::map< std::string, bool > > joint_parent_map_
std::vector< EigenSTL::vector_Vector3d > collision_point_vel_eigen_
Eigen::MatrixXd random_momentum_
std::vector< EigenSTL::vector_Vector3d > joint_axes_
planning_scene::PlanningSceneConstPtr planning_scene_
std::vector< std::string > joint_names_
ChompTrajectory group_trajectory_
const collision_detection::CollisionEnvHybrid * hy_env_
double best_group_trajectory_cost_
std::vector< int > state_is_in_collision_
int last_improvement_iteration_
void calculateCollisionIncrements()
ChompOptimizer(ChompTrajectory *trajectory, const planning_scene::PlanningSceneConstPtr &planning_scene, const std::string &planning_group, const ChompParameters *parameters, const moveit::core::RobotState &start_state)
double getCollisionCost()
bool isParent(const std::string &childLink, const std::string &parentLink) const
const moveit::core::RobotModelConstPtr & robot_model_
ChompTrajectory * full_trajectory_
double getTrajectoryCost()
Eigen::MatrixXd collision_increments_
std::vector< EigenSTL::vector_Vector3d > collision_point_pos_eigen_
std::vector< std::vector< double > > collision_point_potential_
bool isCollisionFree() const
void calculateTotalIncrements()
std::vector< std::vector< int > > point_is_in_collision_
void performForwardKinematics()
moveit::core::RobotState state_
Eigen::MatrixXd jacobian_
Eigen::MatrixXd group_trajectory_backup_
double worst_collision_cost_state_
void updateFullTrajectory()
void registerParents(const moveit::core::JointModel *model)
bool isInitialized() const
std::vector< EigenSTL::vector_Vector3d > joint_positions_
moveit::core::RobotState start_state_
void computeJointProperties(int trajectoryPoint)
Eigen::VectorXd smoothness_derivative_
Eigen::MatrixXd final_increments_
double stochasticity_factor_
void calculatePseudoInverse()
Eigen::VectorXd joint_state_velocities_
Eigen::MatrixXd momentum_
double getSmoothnessCost()
virtual ~ChompOptimizer()
std::vector< ChompCost > joint_costs_
std::vector< std::vector< double > > collision_point_vel_mag_
chomp_motion_planner
Author(s): Gil Jones
, Mrinal Kalakrishnan
autogenerated on Sat Mar 15 2025 02:26:05