moveit2
The MoveIt Motion Planning Framework for ROS 2.
Loading...
Searching...
No Matches
stomp_moveit_task.hpp File Reference

A STOMP task definition that allows injecting custom functions for planning. More...

#include <stomp/task.h>
Include dependency graph for stomp_moveit_task.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  stomp_moveit::ComposableTask

Namespaces

namespace  stomp_moveit

Typedefs

using stomp_moveit::NoiseGeneratorFn
using stomp_moveit::CostFn = std::function<bool(const Eigen::MatrixXd& values, Eigen::VectorXd& costs, bool& validity)>
using stomp_moveit::FilterFn = std::function<bool(const Eigen::MatrixXd& values, Eigen::MatrixXd& filtered_values)>
using stomp_moveit::PostIterationFn = std::function<void(int iteration_number, double cost, const Eigen::MatrixXd& values)>
using stomp_moveit::DoneFn

Detailed Description

A STOMP task definition that allows injecting custom functions for planning.

Author
Henning Kayser

STOMP's task interface can be used for customizing the planning objective, in particular the code used for sampling new random trajectories and for computing costs and validity of waypoint candidates. In order to allow building generic planning tasks at runtime, the ComposableTask class enables combining generic function types for planning:

  • NoiseGeneratorFn: computes randomized paths
  • CostFn: computes waypoint costs and path validity
  • FilterFn: applies a filter to path waypoints
  • PostIterationFn: reports on planning progress at each iteration (see STOMP documentation)
  • DoneFn: reports on planning result when STOMP run terminates

Each of these functions use Eigen types for representing path and waypoints. The Eigen::MatrixXd 'values' refer to full path candidates where rows are the joint dimensions and columns are the waypoints. Accordingly, Eigen::VectorXd is used for representing cost values, one value for each waypoint.

Definition in file stomp_moveit_task.hpp.