Aikido
ConcreteManipulator.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_ROBOT_CONCRETEMANIPULATOR_HPP_
2 #define AIKIDO_ROBOT_CONCRETEMANIPULATOR_HPP_
3 
4 #include "aikido/robot/Hand.hpp"
6 #include "aikido/robot/util.hpp"
7 
8 namespace aikido {
9 namespace robot {
10 
12 
13 class ConcreteManipulator : public Manipulator
17 {
18 public:
19  // Expose base class functions
23 
28 
29  virtual ~ConcreteManipulator() = default;
30 
31  // Documentation inherited.
32  virtual ConstHandPtr getHand() const override;
33 
34  // Documentation inherited.
35  virtual std::unique_ptr<aikido::trajectory::Spline> smoothPath(
36  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
38  const constraint::TestablePtr& constraint) override;
39 
40  // Documentation inherited.
41  virtual std::unique_ptr<aikido::trajectory::Spline> retimePath(
42  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
43  const aikido::trajectory::Trajectory* path) override;
44 
45  // Documentation inherited.
46  virtual std::unique_ptr<aikido::trajectory::Spline> retimePathWithKunz(
47  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
49  double maxDeviation,
50  double timestep) override;
51 
52  // Documentation inherited.
53  virtual std::future<void> executeTrajectory(
54  const trajectory::TrajectoryPtr& trajectory) const override;
55 
56  // Documentation inherited.
57  virtual boost::optional<Eigen::VectorXd> getNamedConfiguration(
58  const std::string& name) const override;
59 
60  // Documentation inherited.
61  virtual void setNamedConfigurations(
62  std::unordered_map<std::string, const Eigen::VectorXd>
63  namedConfigurations) override;
64 
65  // Documentation inherited.
66  virtual std::string getName() const override;
67 
68  // Documentation inherited.
69  virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const override;
70 
71  // Documentation inherited.
73  getStateSpace() const override;
74 
75  // Documentation inherited.
76  virtual void setRoot(Robot* robot) override;
77 
78  // Documentation inherited.
79  virtual void step(
80  const std::chrono::system_clock::time_point& timepoint) override;
81 
82  // Documentation inherited.
85  const dart::dynamics::MetaSkeletonPtr& metaSkeleton) const override;
86 
87  // Documentation inherited.
90  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
91  const constraint::dart::CollisionFreePtr& collisionFree) const override;
92 
108  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
109  const dart::dynamics::BodyNodePtr& body,
110  const constraint::dart::CollisionFreePtr& collisionFree,
111  const Eigen::Vector3d& direction,
112  double distance,
113  double timelimit,
114  double positionTolerance,
115  double angularTolerance);
116 
132  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
133  const dart::dynamics::BodyNodePtr& body,
134  const constraint::dart::CollisionFreePtr& collisionFree,
135  double distance,
136  double timelimit,
137  double positionTolerance,
138  double angularTolerance);
139 
144  const util::VectorFieldPlannerParameters& vfParameters);
145 
150  const util::CRRTPlannerParameters& crrtParameters);
151 
152 private:
155 
158 
161 
164 };
165 
166 } // namespace robot
167 } // namespace aikido
168 
169 #endif // AIKIDO_ROBOT_CONCRETEMANIPULATOR_HPP_
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr
std::shared_ptr< const MetaSkeletonStateSpace > ConstMetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
aikido::robot::Robot::getMetaSkeleton
virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const =0
aikido::statespace::dart::MetaSkeletonStateSpacePtr
std::shared_ptr< MetaSkeletonStateSpace > MetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
aikido::robot::ConcreteManipulator::getStateSpace
virtual aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr getStateSpace() const override
aikido::robot::util::VectorFieldPlannerParameters
Definition: util.hpp:27
aikido::robot::ConcreteManipulator::setRoot
virtual void setRoot(Robot *robot) override
Sets the root of this robot.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::robot::ConcreteManipulator::getName
virtual std::string getName() const override
aikido::robot::ConcreteManipulator::getSelfCollisionConstraint
virtual constraint::dart::CollisionFreePtr getSelfCollisionConstraint(const statespace::dart::ConstMetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton) const override
Returns self-collision constraint.
aikido::robot::ConcreteManipulator::setNamedConfigurations
virtual void setNamedConfigurations(std::unordered_map< std::string, const Eigen::VectorXd > namedConfigurations) override
Sets the list of named configurations.
aikido::robot::RobotPtr
std::shared_ptr< Robot > RobotPtr
Definition: Robot.hpp:21
aikido::robot::ConcreteManipulator::smoothPath
virtual std::unique_ptr< aikido::trajectory::Spline > smoothPath(const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const aikido::trajectory::Trajectory *path, const constraint::TestablePtr &constraint) override
Returns a timed trajectory that can be executed by the robot.
util.hpp
aikido::robot::Manipulator::getHand
virtual ConstHandPtr getHand() const =0
Returns the [const] hand.
aikido::robot::ConcreteManipulator::getNamedConfiguration
virtual boost::optional< Eigen::VectorXd > getNamedConfiguration(const std::string &name) const override
Returns a named configuration.
aikido::robot::ConcreteManipulator::setCRRTPlannerParameters
void setCRRTPlannerParameters(const util::CRRTPlannerParameters &crrtParameters)
TODO: This should be revisited once we have Planner API.
aikido::robot::ConcreteManipulator::executeTrajectory
virtual std::future< void > executeTrajectory(const trajectory::TrajectoryPtr &trajectory) const override
Executes a trajectory.
aikido::constraint::dart::CollisionFreePtr
std::shared_ptr< CollisionFree > CollisionFreePtr
Definition: CollisionFree.hpp:22
aikido::robot::ConcreteManipulator::planEndEffectorStraight
trajectory::TrajectoryPtr planEndEffectorStraight(statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const dart::dynamics::BodyNodePtr &body, const constraint::dart::CollisionFreePtr &collisionFree, double distance, double timelimit, double positionTolerance, double angularTolerance)
TODO: Replace this with Problem interface.
aikido::trajectory::TrajectoryPtr
std::shared_ptr< Trajectory > TrajectoryPtr
Definition: Trajectory.hpp:13
aikido::robot::ConcreteManipulator
A concrete implementation of a manipulator.
Definition: ConcreteManipulator.hpp:16
aikido::robot::ConcreteManipulator::getMetaSkeleton
virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const override
aikido::robot::ConcreteManipulator::planToEndEffectorOffset
trajectory::TrajectoryPtr planToEndEffectorOffset(const statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const dart::dynamics::BodyNodePtr &body, const constraint::dart::CollisionFreePtr &collisionFree, const Eigen::Vector3d &direction, double distance, double timelimit, double positionTolerance, double angularTolerance)
TODO: Replace this with Problem interface.
aikido::robot::ConcreteManipulator::step
virtual void step(const std::chrono::system_clock::time_point &timepoint) override
Simulates up to the provided timepoint.
Manipulator.hpp
aikido::robot::Manipulator
Base interface for manipulator.
Definition: Manipulator.hpp:14
aikido::robot::ConcreteManipulator::ConcreteManipulator
ConcreteManipulator(RobotPtr robot, HandPtr hand)
Constructor.
aikido::robot::ConcreteManipulator::setVectorFieldPlannerParameters
void setVectorFieldPlannerParameters(const util::VectorFieldPlannerParameters &vfParameters)
TODO: This should be revisited once we have Planner API.
aikido::robot::util::CRRTPlannerParameters
Definition: util.hpp:63
aikido::robot::ConcreteManipulator::mCRRTParameters
util::CRRTPlannerParameters mCRRTParameters
CRRTPlanner-related parameters.
Definition: ConcreteManipulator.hpp:163
aikido::robot::ConcreteManipulator::retimePathWithKunz
virtual std::unique_ptr< aikido::trajectory::Spline > retimePathWithKunz(const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const aikido::trajectory::Trajectory *path, double maxDeviation, double timestep) override
Returns a timed trajectory computed with KunzRetimer.
aikido::robot::HandPtr
std::shared_ptr< Hand > HandPtr
Definition: Hand.hpp:17
Hand.hpp
aikido::robot::ConcreteManipulator::retimePath
virtual std::unique_ptr< aikido::trajectory::Spline > retimePath(const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const aikido::trajectory::Trajectory *path) override
Returns a timed trajectory that can be executed by the robot.
aikido::robot::ConcreteManipulator::~ConcreteManipulator
virtual ~ConcreteManipulator()=default
aikido::robot::Robot
Robot interface for defining basic behaviors of a robot.
Definition: Robot.hpp:26
aikido::robot::ConcreteManipulator::mHand
HandPtr mHand
Hand of this manipulator.
Definition: ConcreteManipulator.hpp:157
aikido::robot::ConcreteManipulator::mRobot
RobotPtr mRobot
The robot whose metaSkeleton corresponds to this manipulator.
Definition: ConcreteManipulator.hpp:154
aikido::robot::ConcreteManipulator::mVectorFieldParameters
util::VectorFieldPlannerParameters mVectorFieldParameters
VectorFieldPlanenr-related parameters.
Definition: ConcreteManipulator.hpp:160
aikido::constraint::TestablePtr
std::shared_ptr< Testable > TestablePtr
Definition: Testable.hpp:13
aikido::robot::ConcreteManipulator::getFullCollisionConstraint
virtual aikido::constraint::TestablePtr getFullCollisionConstraint(const statespace::dart::ConstMetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const constraint::dart::CollisionFreePtr &collisionFree) const override
TODO: Consider changing this to return a CollisionFreePtr.
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
aikido::trajectory::Trajectory
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
aikido::robot::Robot::getStateSpace
virtual aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr getStateSpace() const =0
aikido::robot::ConstHandPtr
std::shared_ptr< const Hand > ConstHandPtr
Definition: Hand.hpp:17
aikido::robot::ConcreteManipulator::getHand
virtual ConstHandPtr getHand() const override
Returns the [const] hand.