Assigns a cost value to each robot state by evaluating if the robot is in collision. More...
#include <collision_check.h>
Public Member Functions | |
virtual bool | computeCosts (const Eigen::MatrixXd ¶meters, std::size_t start_timestep, std::size_t num_timesteps, int iteration_number, int rollout_number, Eigen::VectorXd &costs, bool &validity) override |
computes the state costs by checking whether the robot is in collision at each time step. More... | |
virtual bool | configure (const XmlRpc::XmlRpcValue &config) override |
Sets internal members of the plugin from the configuration data. More... | |
virtual void | done (bool success, int total_iterations, double final_cost, const Eigen::MatrixXd ¶meters) override |
Called by the Stomp Task at the end of the optimization process. More... | |
virtual std::string | getGroupName () const override |
virtual std::string | getName () const override |
virtual bool | initialize (moveit::core::RobotModelConstPtr robot_model_ptr, const std::string &group_name, XmlRpc::XmlRpcValue &config) override |
Initializes and configures the Cost Function. Calls the configure method and passes the 'config' value. More... | |
virtual bool | setMotionPlanRequest (const planning_scene::PlanningSceneConstPtr &planning_scene, const moveit_msgs::MotionPlanRequest &req, const stomp_core::StompConfiguration &config, moveit_msgs::MoveItErrorCodes &error_code) override |
Stores the planning details which will be used during the costs calculations. More... | |
Public Member Functions inherited from stomp_moveit::cost_functions::StompCostFunction | |
virtual int | getOptimizedIndex () const |
The index returned by this method will be passed by the Task to the corresponding plugin method as the 'rollout_number' argument when operating on the noiseless (optimized) parameters. | |
virtual double | getWeight () const |
virtual void | postIteration (std::size_t start_timestep, std::size_t num_timesteps, int iteration_number, double cost, const Eigen::MatrixXd ¶meters) |
Called by STOMP at the end of each iteration. More... | |
Protected Member Functions | |
bool | checkIntermediateCollisions (const Eigen::VectorXd &start, const Eigen::VectorXd &end, double longest_valid_joint_move) |
Checks for collision between consecutive points by dividing the joint move into sub-moves where the maximum joint motion can not exceed the longest_valid_joint_move value. More... | |
Protected Attributes | |
double | collision_penalty_ |
The value assigned to a collision state. | |
std::string | group_name_ |
std::array< moveit::core::RobotStatePtr, 3 > | intermediate_coll_states_ |
Used in checking collisions between to consecutive poses. | |
Eigen::ArrayXd | intermediate_costs_slots_ |
double | kernel_window_percentage_ |
The value assigned to a collision state. | |
double | longest_valid_joint_move_ |
how far can a joint move in between consecutive trajectory points | |
std::string | name_ |
moveit_msgs::MotionPlanRequest | plan_request_ |
planning_scene::PlanningSceneConstPtr | planning_scene_ |
Eigen::VectorXd | raw_costs_ |
moveit::core::RobotModelConstPtr | robot_model_ptr_ |
moveit::core::RobotStatePtr | robot_state_ |
Protected Attributes inherited from stomp_moveit::cost_functions::StompCostFunction | |
double | cost_weight_ |
Assigns a cost value to each robot state by evaluating if the robot is in collision.
Definition at line 45 of file collision_check.h.
|
protected |
Checks for collision between consecutive points by dividing the joint move into sub-moves where the maximum joint motion can not exceed the longest_valid_joint_move value.
start | The start joint pose |
end | The end joint pose |
longest_valid_joint_move | The maximum distance that the joints are allowed to move before checking for collisions. |
Definition at line 279 of file collision_check.cpp.
|
overridevirtual |
computes the state costs by checking whether the robot is in collision at each time step.
parameters | The parameter values to evaluate for state costs [num_dimensions x num_parameters] |
start_timestep | start index into the 'parameters' array, usually 0. |
num_timesteps | number of elements to use from 'parameters' starting from 'start_timestep' * |
iteration_number | The current iteration count in the optimization loop |
rollout_number | index of the noisy trajectory whose cost is being evaluated. * |
costs | vector containing the state costs per timestep. Sets '0' to all collision-free states. |
validity | whether or not the trajectory is valid. |
Implements stomp_moveit::cost_functions::StompCostFunction.
Definition at line 180 of file collision_check.cpp.
|
overridevirtual |
Sets internal members of the plugin from the configuration data.
config | The configuration data. Usually loaded from the ros parameter server |
Implements stomp_moveit::cost_functions::StompCostFunction.
Definition at line 322 of file collision_check.cpp.
|
overridevirtual |
Called by the Stomp Task at the end of the optimization process.
success | Whether the optimization succeeded |
total_iterations | Number of iterations used |
final_cost | The cost value after optimizing. |
parameters | The parameters generated at the end of current iteration [num_dimensions x num_timesteps] |
Reimplemented from stomp_moveit::cost_functions::StompCostFunction.
Definition at line 364 of file collision_check.cpp.
|
overridevirtual |
Initializes and configures the Cost Function. Calls the configure method and passes the 'config' value.
robot_model_ptr | A pointer to the robot model. |
group_name | The designated planning group. |
config | The configuration data. Usually loaded from the ros parameter server |
Implements stomp_moveit::cost_functions::StompCostFunction.
Definition at line 140 of file collision_check.cpp.
|
overridevirtual |
Stores the planning details which will be used during the costs calculations.
planning_scene | A smart pointer to the planning scene |
req | The motion planning request |
config | The Stomp configuration. |
error_code | Moveit error code. |
Implements stomp_moveit::cost_functions::StompCostFunction.
Definition at line 148 of file collision_check.cpp.