Robowflex  v0.1
Making MoveIt Easy
builder.h
Go to the documentation of this file.
1 /* Author: Zachary Kingston */
2 
3 #ifndef ROBOWFLEX_BUILDER_
4 #define ROBOWFLEX_BUILDER_
5 
6 #include <moveit/planning_pipeline/planning_pipeline.h>
7 
10 #include <robowflex_library/id.h>
13 
14 namespace robowflex
15 {
16  /** \cond IGNORE */
18  ROBOWFLEX_CLASS_FORWARD(Planner);
19  /** \endcond */
20 
21  /** \cond IGNORE */
22  ROBOWFLEX_CLASS_FORWARD(MotionRequestBuilder);
23  /** \endcond */
24 
25  /** \class robowflex::MotionRequestBuilderPtr
26  \brief A shared pointer wrapper for robowflex::MotionRequestBuilder. */
27 
28  /** \class robowflex::MotionRequestBuilderConstPtr
29  \brief A const shared pointer wrapper for robowflex::MotionRequestBuilder. */
30 
31  /** \brief A helper class to build motion planning requests for a robowflex::Planner
32  */
33  class MotionRequestBuilder : public ID
34  {
35  public:
36  /** \brief Constructor.
37  * \param[in] robot Robot to build planning problem for.
38  */
40 
41  /** \brief Constructor. Set planner config and group as well.
42  * \param[in] robot Robot to build planning problem for.
43  * \param[in] group_name The motion planning group to build the request for.
44  * \param[in] planner_config Desired planning configuration to use.
45  */
46  MotionRequestBuilder(const RobotConstPtr &robot, const std::string &group_name,
47  const std::string &planner_config = "");
48 
49  /** \brief Constructor.
50  * \param[in] planner The motion planner to build a request for.
51  * \param[in] group_name The motion planning group to build the request for.
52  * \param[in] planner_config Desired planning configuration to use.
53  */
54  MotionRequestBuilder(const PlannerConstPtr &planner, const std::string &group_name,
55  const std::string &planner_config = "");
56 
57  /** \brief Copy Constructor.
58  * \param[in] other Request to copy.
59  */
61 
62  /** \brief Clone this request.
63  * \return A copy of this request.
64  */
66 
67  /** \name Configuring Builder
68  \{ */
69 
70  /** \brief Sets defaults.
71  */
72  void initialize();
73 
74  /** \brief Set the planning group to use for this request builder.
75  * \param[in] group_name Name of planning group.
76  */
77  void setPlanningGroup(const std::string &group_name);
78 
79  /** \brief Set the Robowflex planner to use.
80  * \param[in] planner Robowflex planner to build request for.
81  */
82  void setPlanner(const PlannerConstPtr &planner);
83 
84  /** \} */
85 
86  /** \name Starting Configurations
87  \{ */
88 
89  /** \brief Set the start configuration from a vector \a joints.
90  * All joints are assumed to be specified and in the default order.
91  * \param[in] joints The values of the joints to set.
92  */
93  void setStartConfiguration(const std::vector<double> &joints);
94 
95  /** \brief Set the start configuration from a robot state.
96  * \param[in] state The robot state to set. Usually from robowflex::Robot::getScratchState().
97  */
98  void setStartConfiguration(const robot_state::RobotState &state);
99 
100  /** \brief Set the start configuration from a robot state.
101  * \param[in] state The robot state to set. Usually from robowflex::Robot::getScratchState().
102  */
103  void setStartConfiguration(const robot_state::RobotStatePtr &state);
104 
105  /** \brief Use the current scene state for the starting configuration.
106  * \param[in] scene Scene to use state from.
107  */
109 
110  /** \brief Attach an object to the current request start state. Uses \a object from \a scene, and
111  * modifies the underlying scene state. This uses `attachObject()` on the scene, so note that the
112  * attached object will have to be re-added to the scene.
113  * \param[in] scene Scene to use objects from. Will be modified.
114  * \param[in] object Object to attach.
115  * \return True on success, false on failure.
116  */
117  bool attachObjectToStart(ScenePtr scene, const std::string &object);
118 
119  /** \brief Attach an object to the current request start state. Uses \a object from \a scene, but does
120  * not modify the underlying scene. Be aware that attached objects can collide with themselves if not
121  * removed from the provided scene.
122  * \param[in] scene Scene to use objects from.
123  * \param[in] object Object to attach.
124  * \return True on success, false on failure.
125  */
126  bool attachObjectToStartConst(const SceneConstPtr &scene, const std::string &object);
127 
128  /** \} */
129 
130  /** \name Goals
131  \{ */
132 
133  /** \brief Add a goal configuration from a vector \a joints.
134  * All joints are assumed to be specified and in the default order.
135  * \param[in] joints The values of the joints to set.
136  */
137  void addGoalConfiguration(const std::vector<double> &joints);
138 
139  /** \brief Add a goal configuration from a robot state.
140  * \param[in] state The robot state to set as pointer. Usually from
141  * robowflex::Robot::getScratchState().
142  */
143  void addGoalConfiguration(const robot_state::RobotStatePtr &state);
144 
145  /** \brief Add a goal configuration from a robot state.
146  * \param[in] state The robot state to set ass reference. Usually from
147  * robowflex::Robot::getScratchState().
148  */
149  void addGoalConfiguration(const robot_state::RobotState &state);
150 
151  /** \brief Add an IK query as a goal pose.
152  * \param[in] query IK query to construct goal from.
153  */
154  void addGoalFromIKQuery(const Robot::IKQuery &query);
155 
156  /** \brief Add a goal pose for the end-effector \a ee_name.
157  * Generates a sphere with radius \a tolerance as well as orientation tolerances of \a tolerance
158  * from \a pose.
159  * \param[in] ee_name The name of the end-effector link.
160  * \param[in] base_name The name of the frame of reference of \a pose.
161  * \param[in] pose The pose of the end-effector in \a base_frame.
162  * \param[in] tolerance The tolerance to put on the pose.
163  */
164  void addGoalPose(const std::string &ee_name, const std::string &base_name, const RobotPose &pose,
165  double tolerance = 0.001);
166 
167  /** \brief Add a goal region for an end-effector \a ee_name.
168  * Sets the position constraint from \a geometry at a pose \a pose, and the orientation constraint
169  * from \a orientation and XYZ Euler angle tolerances \a tolerances.
170  * \param[in] ee_name The name of the end-effector link.
171  * \param[in] base_name The name of the frame of reference of \a pose and \a orientation.
172  * \param[in] pose The pose of \a geometry in \a base_frame.
173  * \param[in] geometry The geometry describing the position constraint.
174  * \param[in] orientation The desired orientation.
175  * \param[in] tolerances XYZ Euler angle tolerances about orientation.
176  */
177  void addGoalRegion(const std::string &ee_name, const std::string &base_name, const RobotPose &pose,
178  const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation,
179  const Eigen::Vector3d &tolerances);
180 
181  /** \brief Tiles some \a geometry around a \a pose in \a base_name for the end-effector \a ee_name.
182  * The \a geometry is placed at \a offset from \a pose, and \a n copies are placed evenly rotated
183  * about \a axis. The desired \a orientation is also rotated about the axis and set for each copy.
184  * \param[in] ee_name The name of the end-effector link.
185  * \param[in] base_name The name of the frame of reference of \a pose and \a orientation.
186  * \param[in] pose The pose of the frame to be rotated about.
187  * \param[in] geometry The geometry describing the position constraint.
188  * \param[in] orientation The desired orientation.
189  * \param[in] tolerances XYZ Euler angle tolerances about orientation.
190  * \param[in] offset Offset of the goal \a geometry from \a pose.
191  * \param[in] axis Axis to rotation the goal \a geometry and \a orientation about in \a pose.
192  * \param[in] n Number of rotations (evenly divided around the circle).
193  */
194  void addGoalRotaryTile(const std::string &ee_name, const std::string &base_name,
195  const RobotPose &pose, const GeometryConstPtr &geometry,
196  const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances,
197  const RobotPose &offset, const Eigen::Vector3d &axis, unsigned int n);
198 
199  /** \brief Adds a set of regions to grasp a cylinder from the side. This function assumes the X-axis
200  * of the end-effector frame \a ee_name points "forward" for grasping.
201  * \param[in] ee_name The name of the end-effector link.
202  * \param[in] base_name The name of the frame of reference of \a pose.
203  * \param[in] pose The pose of the frame to be rotated about.
204  * \param[in] cylinder The cylinder to grasp.
205  * \param[in] distance The distance from the cylinder to place the regions.
206  * \param[in] depth The depth of boxes to create.
207  * \param[in] n The number of regions to create.
208  */
209  void addCylinderSideGrasp(const std::string &ee_name, const std::string &base_name,
210  const RobotPose &pose, const GeometryConstPtr &cylinder, double distance,
211  double depth, unsigned int n);
212 
213  /** \brief Set the goal configuration from a vector \a joints.
214  * All joints are assumed to be specified and in the default order.
215  * \param[in] joints The values of the joints to set.
216  */
217  void setGoalConfiguration(const std::vector<double> &joints);
218 
219  /** \brief Set the goal configuration from a robot state.
220  * \param[in] state The robot state to set as pointer. Usually from
221  * robowflex::Robot::getScratchState().
222  */
223  void setGoalConfiguration(const robot_state::RobotStatePtr &state);
224 
225  /** \brief Set the goal configuration from a robot state.
226  * \param[in] state The robot state to set as reference. Usually from
227  * robowflex::Robot::getScratchState().
228  */
229  void setGoalConfiguration(const robot_state::RobotState &state);
230 
231  /** \brief Set the goal pose from an IK query.
232  * \param[in] query IK query to construct goal from.
233  */
234  void setGoalFromIKQuery(const Robot::IKQuery &query);
235 
236  /** \brief Set a goal pose for the end-effector \a ee_name.
237  * Generates a sphere with radius \a tolerance as well as orientation tolerances of \a tolerance
238  * from \a pose.
239  * \param[in] ee_name The name of the end-effector link.
240  * \param[in] base_name The name of the frame of reference of \a pose.
241  * \param[in] pose The pose of the end-effector in \a base_frame.
242  * \param[in] tolerance The tolerance to put on the pose.
243  */
244  void setGoalPose(const std::string &ee_name, const std::string &base_name, const RobotPose &pose,
245  double tolerance = 0.001);
246 
247  /** \brief Set a goal region for an end-effector \a ee_name.
248  * Sets the position constraint from \a geometry at a pose \a pose, and the orientation constraint
249  * from \a orientation and XYZ Euler angle tolerances \a tolerances.
250  * \param[in] ee_name The name of the end-effector link.
251  * \param[in] base_name The name of the frame of reference of \a pose and \a orientation.
252  * \param[in] pose The pose of \a geometry in \a base_frame.
253  * \param[in] geometry The geometry describing the position constraint.
254  * \param[in] orientation The desired orientation.
255  * \param[in] tolerances XYZ Euler angle tolerances about orientation.
256  */
257  void setGoalRegion(const std::string &ee_name, const std::string &base_name, const RobotPose &pose,
258  const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation,
259  const Eigen::Vector3d &tolerances);
260 
261  /** \brief Callback function that returns true if configuration is valid for goal set, false
262  * otherwise.
263  */
264 
265  using ConfigurationValidityCallback = std::function<bool(const robot_state::RobotState &)>;
266 
267  /** \brief Override the goals of this motion request with precomputed goal configurations (from the
268  * specified regions).
269  *
270  * That is, rather than a set of sampleable goal regions, the request will have \a n_samples goal
271  * configurations, all sampled from the prior goal regions.
272  *
273  * \param[in] n_samples Number of samples to precompute.
274  * \param[in] scene Scene to collision check against.
275  * \param[in] callback If provided, will only keep samples that are valid according to callback.
276  */
279 
280  /** \brief Clears all goals.
281  */
282  void clearGoals();
283 
284  /** \} */
285 
286  /** \name Path Constraints
287  \{ */
288 
289  /** \brief Set a pose constraint on the path.
290  * Sets the position constraint from \a geometry at a pose \a pose, and the orientation constraint
291  * from \a orientation and XYZ Euler angle tolerances \a tolerances.
292  * \param[in] ee_name The name of the end-effector link.
293  * \param[in] base_name The name of the frame of reference of \a pose and \a orientation.
294  * \param[in] pose The pose of \a geometry in \a base_frame.
295  * \param[in] geometry The geometry describing the position constraint.
296  * \param[in] orientation The desired orientation.
297  * \param[in] tolerances XYZ Euler angle tolerances about orientation.
298  */
299  void addPathPoseConstraint(const std::string &ee_name, const std::string &base_name,
300  const RobotPose &pose, const GeometryConstPtr &geometry,
301  const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances);
302 
303  /** \brief Set a position constraint on the path.
304  * Sets the position constraint from \a geometry at a pose \a pose.
305  * \param[in] ee_name The name of the end-effector link.
306  * \param[in] base_name The name of the frame of reference of \a pose.
307  * \param[in] pose The pose of \a geometry in \a base_frame.
308  * \param[in] geometry The geometry describing the position constraint.
309  */
310  void addPathPositionConstraint(const std::string &ee_name, const std::string &base_name,
311  const RobotPose &pose, const GeometryConstPtr &geometry);
312 
313  /** \brief Set an orientation constraint on the path.
314  * Sets the orientation constraint from \a orientation and XYZ Euler angle tolerances \a tolerances.
315  * \param[in] ee_name The name of the end-effector link.
316  * \param[in] base_name The name of the frame of reference of \a orientation.
317  * \param[in] orientation The desired orientation.
318  * \param[in] tolerances XYZ Euler angle tolerances about orientation.
319  */
320  void addPathOrientationConstraint(const std::string &ee_name, const std::string &base_name,
321  const Eigen::Quaterniond &orientation,
322  const Eigen::Vector3d &tolerances);
323 
324  /** \} */
325 
326  /** \name Miscellaneous Settings
327  \{ */
328 
329  /** \brief Set the planning configuration to use for the motion planning request.
330  * Attempts to match \a requested_config with the planner configuration offered by \a planner_
331  * that is the shortest configuration that contains \a requested_config as a substring. For example,
332  * specifying `RRTConnect` will match `RRTConnectkConfigDefault`, and specifying `RRT` will match
333  * `RRTkConfigDefault` and not `RRTConnectkConfigDefault`.
334  * \param[in] requested_config The planner config to find and use.
335  * \return True if the \a requested_config is found, false otherwise.
336  */
337  bool setConfig(const std::string &requested_config);
338 
339  /** \brief Set the allowed planning time in the request.
340  * \param[in] allowed_planning_time The allowed planning time.
341  */
342  void setAllowedPlanningTime(double allowed_planning_time);
343 
344  /** \brief Set the number of planning attemps in the request.
345  * \param[in] num_planning_attempts The required time for planning attempts.
346  */
347  void setNumPlanningAttempts(unsigned int num_planning_attempts);
348 
349  /** \brief Sets workspace bounds of the planning request.
350  * \param[in] wp The workspace parameters to use.
351  */
352  void setWorkspaceBounds(const moveit_msgs::WorkspaceParameters &wp);
353 
354  /** \brief Sets workspace bounds of the planning request.
355  * \param[in] min XYZ vector of minimum workspace bounds.
356  * \param[in] max XYZ vector of maximum workspace bounds.
357  */
358  void setWorkspaceBounds(const Eigen::Ref<const Eigen::VectorXd> &min,
359  const Eigen::Ref<const Eigen::VectorXd> &max);
360 
361  /** \brief Swap the start and goal configurations.
362  * This is only possible when a single joint goal is specified, otherwise an error is raised.
363  * \return True upon success, False otherwise.
364  */
365  bool swapStartWithGoal();
366 
367  /** \} */
368 
369  /** \name Getters
370  \{ */
371 
372  /** \brief Get a reference to the currently built motion planning request.
373  * \return The motion planning request.
374  */
376 
377  /** \brief Get a const reference to the currently built motion planning request.
378  * \return The motion planning request.
379  */
381 
382  /** \brief Get the start state of the request as a robot state.
383  * \return The start state.
384  */
385  robot_state::RobotStatePtr getStartConfiguration() const;
386 
387  /** \brief Get the goal state of the request as a robot state.
388  * \return The goal state.
389  */
390  robot_state::RobotStatePtr getGoalConfiguration() const;
391 
392  /** \brief Get a reference to the current path constraints on the motion planning request.
393  * \return The motion planning request.
394  */
395  moveit_msgs::Constraints &getPathConstraints();
396 
397  /** \brief Get the robot for this request.
398  * \return The robot.
399  */
400  const RobotConstPtr &getRobot() const;
401 
402  /** \brief Get the planner for this request.
403  * \return The planner. Will be null if not set.
404  */
405  const PlannerConstPtr &getPlanner() const;
406 
407  /** \brief Get the planning group.
408  * \return The current planning group used.
409  */
410  const std::string &getPlanningGroup() const;
411 
412  /** \brief Get the planner config.
413  * \return The current planner config used.
414  */
415  const std::string &getPlannerConfig() const;
416 
417  /** \} */
418 
419  /** \name IO
420  \{ */
421 
422  /** \brief Serialize the motion planning request to a YAML file \a file.
423  * \param[in] file The name of the file to serialize the request to.
424  * \return True on success, false on failure.
425  */
426  bool toYAMLFile(const std::string &file) const;
427 
428  /** \brief Load a planning request from a YAML file \a file.
429  * \param[in] file The name of the file to load the request from.
430  * \return True on success, false on failure.
431  */
432  bool fromYAMLFile(const std::string &file);
433 
434  /** \} */
435 
436  private:
437  const RobotConstPtr robot_; ///< The robot to build the request for.
438 
439  PlannerConstPtr planner_; ///< The planner to build the request for.
440  std::string group_name_; ///< The group to plan for.
441  robot_model::JointModelGroup *jmg_{nullptr}; ///< The joint model group of the robot (from \a
442  ///< group_name_)
443 
445 
446  static const std::string DEFAULT_CONFIG; ///< Default planner configuration to use
447  };
448 } // namespace robowflex
449 
450 #endif
#define ROBOWFLEX_CLASS_FORWARD(C)
Macro that forward declares a class and defines two shared ptrs types:
Definition: class_forward.h:16
A const shared pointer wrapper for robowflex::Geometry.
Adds functionality to uniquely ID a specific class as well as the "version" of that class,...
Definition: id.h:27
A shared pointer wrapper for robowflex::MotionRequestBuilder.
A helper class to build motion planning requests for a robowflex::Planner.
Definition: builder.h:34
void addGoalPose(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, double tolerance=0.001)
Add a goal pose for the end-effector ee_name. Generates a sphere with radius tolerance as well as ori...
Definition: builder.cpp:312
bool swapStartWithGoal()
Swap the start and goal configurations. This is only possible when a single joint goal is specified,...
Definition: builder.cpp:166
void useSceneStateAsStart(const SceneConstPtr &scene)
Use the current scene state for the starting configuration.
Definition: builder.cpp:212
bool toYAMLFile(const std::string &file) const
Serialize the motion planning request to a YAML file file.
Definition: builder.cpp:543
planning_interface::MotionPlanRequest request_
The build request.
Definition: builder.h:444
void addGoalFromIKQuery(const Robot::IKQuery &query)
Add an IK query as a goal pose.
Definition: builder.cpp:268
void setAllowedPlanningTime(double allowed_planning_time)
Set the allowed planning time in the request.
Definition: builder.cpp:448
void clearGoals()
Clears all goals.
Definition: builder.cpp:442
robot_model::JointModelGroup * jmg_
Definition: builder.h:441
void addCylinderSideGrasp(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &cylinder, double distance, double depth, unsigned int n)
Adds a set of regions to grasp a cylinder from the side. This function assumes the X-axis of the end-...
Definition: builder.cpp:355
moveit_msgs::Constraints & getPathConstraints()
Get a reference to the current path constraints on the motion planning request.
Definition: builder.cpp:487
void setNumPlanningAttempts(unsigned int num_planning_attempts)
Set the number of planning attemps in the request.
Definition: builder.cpp:454
PlannerConstPtr planner_
The planner to build the request for.
Definition: builder.h:439
const RobotConstPtr robot_
The robot to build the request for.
Definition: builder.h:437
MotionRequestBuilderPtr clone() const
Clone this request.
Definition: builder.cpp:68
void addPathOrientationConstraint(const std::string &ee_name, const std::string &base_name, const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances)
Set an orientation constraint on the path. Sets the orientation constraint from orientation and XYZ E...
Definition: builder.cpp:477
void addPathPoseConstraint(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances)
Set a pose constraint on the path. Sets the position constraint from geometry at a pose pose,...
Definition: builder.cpp:460
std::string group_name_
The group to plan for.
Definition: builder.h:440
bool attachObjectToStart(ScenePtr scene, const std::string &object)
Attach an object to the current request start state. Uses object from scene, and modifies the underly...
Definition: builder.cpp:217
static const std::string DEFAULT_CONFIG
Default planner configuration to use.
Definition: builder.h:446
bool setConfig(const std::string &requested_config)
Set the planning configuration to use for the motion planning request. Attempts to match requested_co...
Definition: builder.cpp:114
const std::string & getPlannerConfig() const
Get the planner config.
Definition: builder.cpp:572
void setStartConfiguration(const std::vector< double > &joints)
Set the start configuration from a vector joints. All joints are assumed to be specified and in the d...
Definition: builder.cpp:189
robot_state::RobotStatePtr getStartConfiguration() const
Get the start state of the request as a robot state.
Definition: builder.cpp:499
void setGoalPose(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, double tolerance=0.001)
Set a goal pose for the end-effector ee_name. Generates a sphere with radius tolerance as well as ori...
Definition: builder.cpp:396
bool fromYAMLFile(const std::string &file)
Load a planning request from a YAML file file.
Definition: builder.cpp:548
const RobotConstPtr & getRobot() const
Get the robot for this request.
Definition: builder.cpp:557
const PlannerConstPtr & getPlanner() const
Get the planner for this request.
Definition: builder.cpp:562
const std::string & getPlanningGroup() const
Get the planning group.
Definition: builder.cpp:567
void precomputeGoalConfigurations(std::size_t n_samples, const ScenePtr &scene, const ConfigurationValidityCallback &callback={})
Override the goals of this motion request with precomputed goal configurations (from the specified re...
Definition: builder.cpp:412
bool attachObjectToStartConst(const SceneConstPtr &scene, const std::string &object)
Attach an object to the current request start state. Uses object from scene, but does not modify the ...
Definition: builder.cpp:228
void addGoalConfiguration(const std::vector< double > &joints)
Add a goal configuration from a vector joints. All joints are assumed to be specified and in the defa...
Definition: builder.cpp:234
void setWorkspaceBounds(const moveit_msgs::WorkspaceParameters &wp)
Sets workspace bounds of the planning request.
Definition: builder.cpp:146
void initialize()
Sets defaults.
Definition: builder.cpp:73
void setPlanningGroup(const std::string &group_name)
Set the planning group to use for this request builder.
Definition: builder.cpp:96
planning_interface::MotionPlanRequest & getRequest()
Get a reference to the currently built motion planning request.
Definition: builder.cpp:493
void addGoalRegion(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances)
Add a goal region for an end-effector ee_name. Sets the position constraint from geometry at a pose p...
Definition: builder.cpp:323
void addGoalRotaryTile(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances, const RobotPose &offset, const Eigen::Vector3d &axis, unsigned int n)
Tiles some geometry around a pose in base_name for the end-effector ee_name. The geometry is placed a...
Definition: builder.cpp:339
void setPlanner(const PlannerConstPtr &planner)
Set the Robowflex planner to use.
Definition: builder.cpp:82
void setGoalRegion(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &geometry, const Eigen::Quaterniond &orientation, const Eigen::Vector3d &tolerances)
Set a goal region for an end-effector ee_name. Sets the position constraint from geometry at a pose p...
Definition: builder.cpp:403
void setGoalConfiguration(const std::vector< double > &joints)
Set the goal configuration from a vector joints. All joints are assumed to be specified and in the de...
Definition: builder.cpp:372
void setGoalFromIKQuery(const Robot::IKQuery &query)
Set the goal pose from an IK query.
Definition: builder.cpp:390
const planning_interface::MotionPlanRequest & getRequestConst() const
Get a const reference to the currently built motion planning request.
Definition: builder.cpp:538
MotionRequestBuilder(const RobotConstPtr &robot)
Constructor.
Definition: builder.cpp:27
void addPathPositionConstraint(const std::string &ee_name, const std::string &base_name, const RobotPose &pose, const GeometryConstPtr &geometry)
Set a position constraint on the path. Sets the position constraint from geometry at a pose pose.
Definition: builder.cpp:469
robot_state::RobotStatePtr getGoalConfiguration() const
Get the goal state of the request as a robot state.
Definition: builder.cpp:509
A const shared pointer wrapper for robowflex::Planner.
A const shared pointer wrapper for robowflex::Robot.
A const shared pointer wrapper for robowflex::Scene.
A shared pointer wrapper for robowflex::Scene.
moveit_msgs::MotionPlanRequest MotionPlanRequest
Functions for loading and animating robots in Blender.
Main namespace. Contains all library classes and functions.
Definition: scene.cpp:25
std::decay< decltype(std::declval< moveit::core::Transforms >().getTransform("")) >::type RobotPose
A pose (point in SE(3)) used in various functions. Defined from what MoveIt! uses.
Definition: adapter.h:24
Functions for loading and animating scenes in Blender.
Robot IK Query options. IK queries in Robowflex consist of: a) A position specified by some geometric...
void callback(movegroup::MoveGroupHelper::Action &action)
Definition: tapedeck.cpp:20