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::future<void> executeTrajectory(
36  const trajectory::TrajectoryPtr& trajectory) const override;
37 
38  // Documentation inherited.
39  virtual boost::optional<Eigen::VectorXd> getNamedConfiguration(
40  const std::string& name) const override;
41 
42  // Documentation inherited.
43  virtual void setNamedConfigurations(
44  std::unordered_map<std::string, const Eigen::VectorXd>
45  namedConfigurations) override;
46 
47  // Documentation inherited.
48  virtual std::string getName() const override;
49 
50  // Documentation inherited.
51  virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const override;
52 
53  // Documentation inherited.
55  getStateSpace() const override;
56 
57  // Documentation inherited.
58  virtual void setRoot(Robot* robot) override;
59 
60  // Documentation inherited.
61  virtual void step(
62  const std::chrono::system_clock::time_point& timepoint) override;
63 
64  // Documentation inherited.
67  const dart::dynamics::MetaSkeletonPtr& metaSkeleton) const override;
68 
69  // Documentation inherited.
72  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
73  const constraint::dart::CollisionFreePtr& collisionFree) const override;
74 
90  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
91  const dart::dynamics::BodyNodePtr& body,
92  const constraint::dart::CollisionFreePtr& collisionFree,
93  const Eigen::Vector3d& direction,
94  double distance,
95  double timelimit,
96  double positionTolerance,
97  double angularTolerance);
98 
114  const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
115  const dart::dynamics::BodyNodePtr& body,
116  const constraint::dart::CollisionFreePtr& collisionFree,
117  double distance,
118  double timelimit,
119  double positionTolerance,
120  double angularTolerance);
121 
126  const util::VectorFieldPlannerParameters& vfParameters);
127 
132  const util::CRRTPlannerParameters& crrtParameters);
133 
134 private:
137 
140 
143 
146 };
147 
148 } // namespace robot
149 } // namespace aikido
150 
151 #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
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:145
aikido::robot::HandPtr
std::shared_ptr< Hand > HandPtr
Definition: Hand.hpp:17
Hand.hpp
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:139
aikido::robot::ConcreteManipulator::mRobot
RobotPtr mRobot
The robot whose metaSkeleton corresponds to this manipulator.
Definition: ConcreteManipulator.hpp:136
aikido::robot::ConcreteManipulator::mVectorFieldParameters
util::VectorFieldPlannerParameters mVectorFieldParameters
VectorFieldPlanenr-related parameters.
Definition: ConcreteManipulator.hpp:142
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::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.