Go to the documentation of this file. 1 #ifndef AIKIDO_ROBOT_CONCRETEROBOT_HPP_
2 #define AIKIDO_ROBOT_CONCRETEROBOT_HPP_
6 #include <unordered_map>
9 #include <dart/dart.hpp>
45 const std::string& name,
46 dart::dynamics::MetaSkeletonPtr metaSkeleton,
50 dart::collision::CollisionDetectorPtr collisionDetector,
51 std::shared_ptr<dart::collision::BodyNodeCollisionFilter>
58 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
64 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
68 virtual std::unique_ptr<aikido::trajectory::Spline> retimePathWithKunz(
69 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
72 double timestep)
override;
75 virtual std::future<void> executeTrajectory(
79 virtual boost::optional<Eigen::VectorXd> getNamedConfiguration(
80 const std::string& name)
const override;
83 virtual void setNamedConfigurations(
84 std::unordered_map<std::string, const Eigen::VectorXd>
85 namedConfigurations)
override;
88 virtual std::string getName()
const override;
91 virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton()
const override;
95 getStateSpace()
const override;
98 virtual void setRoot(
Robot* robot)
override;
102 const std::chrono::system_clock::time_point& timepoint)
override;
107 const dart::dynamics::MetaSkeletonPtr& metaSkeleton)
const override;
112 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
118 std::shared_ptr<aikido::planner::TrajectoryPostProcessor>
119 getTrajectoryPostProcessor(
120 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
123 double shortcutTimelimit,
126 double feasibilityCheckResolution,
127 double feasibilityApproxTolerance)
const;
140 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
157 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
158 const Eigen::VectorXd& goal,
173 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
174 const std::vector<aikido::statespace::StateSpace::State*>& goalStates,
189 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
190 const std::vector<Eigen::VectorXd>& goals,
209 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
210 const dart::dynamics::BodyNodePtr& bodyNode,
214 std::size_t maxNumTrials,
231 const dart::dynamics::MetaSkeletonPtr& metaSkeleton,
232 const dart::dynamics::BodyNodePtr& bodyNode,
244 const std::string& name,
251 void setCRRTPlannerParameters(
258 Eigen::VectorXd getVelocityLimits(
259 const dart::dynamics::MetaSkeleton& metaSkeleton)
const;
265 Eigen::VectorXd getAccelerationLimits(
266 const dart::dynamics::MetaSkeleton& metaSkeleton)
const;
271 = std::unordered_map<std::string, const Eigen::VectorXd>;
273 std::unique_ptr<aikido::common::RNG> cloneRNG();
293 std::unique_ptr<common::RNG>
mRng;
304 std::shared_ptr<dart::collision::BodyNodeCollisionFilter>
313 #endif // AIKIDO_ROBOT_CONCRETEROBOT_HPP_
std::shared_ptr< const MetaSkeletonStateSpace > ConstMetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
std::unique_ptr< RNG > UniqueRNGPtr
Definition: RNG.hpp:17
virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const =0
std::unordered_map< std::string, const Eigen::VectorXd > ConfigurationMap
Definition: ConcreteRobot.hpp:271
std::shared_ptr< MetaSkeletonStateSpace > MetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
Definition: ConcreteRobot.hpp:29
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
::dart::collision::CollisionDetectorPtr mCollisionDetector
Definition: ConcreteRobot.hpp:303
std::string mName
Name of this robot.
Definition: ConcreteRobot.hpp:280
trajectory::TrajectoryPtr planToConfiguration(const statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const statespace::StateSpace::State *goalState, const constraint::TestablePtr &collisionTestable, common::RNG *rng, double timelimit)
Plan the robot to a specific configuration.
std::shared_ptr< TSR > TSRPtr
Definition: TSR.hpp:17
trajectory::TrajectoryPtr planToTSR(const statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const dart::dynamics::BodyNodePtr &bodyNode, const constraint::dart::TSRPtr &tsr, const constraint::TestablePtr &collisionTestable, common::RNG *rng, double timelimit, std::size_t maxNumTrials, const distance::ConstConfigurationRankerPtr &ranker=nullptr)
Plan the configuration of the metakeleton such that the specified bodynode is set to a sample in TSR.
trajectory::TrajectoryPtr planToConfigurations(const statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const std::vector< statespace::StateSpace::State * > &goalStates, const constraint::TestablePtr &collisionTestable, common::RNG *rng, double timelimit)
Plan the robot to a set of configurations.
ConfigurationMap mNamedConfigurations
Commonly used configurations.
Definition: ConcreteRobot.hpp:301
std::shared_ptr< CollisionFree > CollisionFreePtr
Definition: CollisionFree.hpp:22
std::shared_ptr< Trajectory > TrajectoryPtr
Definition: Trajectory.hpp:13
util::CRRTPlannerParameters mCRRTParameters
Definition: ConcreteRobot.hpp:307
dart::dynamics::MetaSkeletonPtr mMetaSkeleton
MetaSkeleton of this robot.
Definition: ConcreteRobot.hpp:283
std::shared_ptr< const ConfigurationRanker > ConstConfigurationRankerPtr
Definition: ConfigurationRanker.hpp:13
std::unique_ptr< common::RNG > mRng
True if running in simulation mode.
Definition: ConcreteRobot.hpp:293
statespace::dart::MetaSkeletonStateSpacePtr mStateSpace
Definition: ConcreteRobot.hpp:284
trajectory::InterpolatedPtr planToTSRwithTrajectoryConstraint(const statespace::dart::MetaSkeletonStateSpacePtr &space, const dart::dynamics::MetaSkeletonPtr &metaSkeleton, const dart::dynamics::BodyNodePtr &bodyNode, const constraint::dart::TSRPtr &goalTsr, const constraint::dart::TSRPtr &constraintTsr, const constraint::TestablePtr &collisionTestable, double timelimit, const CRRTPlannerParameters &crrtParameters=CRRTPlannerParameters())
Returns a Trajectory that moves the configuration of the metakeleton such that the specified bodynode...
std::shared_ptr< control::TrajectoryExecutor > mTrajectoryExecutor
Definition: ConcreteRobot.hpp:295
std::shared_ptr< TrajectoryExecutor > TrajectoryExecutorPtr
Definition: TrajectoryExecutor.hpp:14
std::unique_ptr< Spline > UniqueSplinePtr
Definition: Spline.hpp:10
Robot * mRootRobot
If this robot belongs to another (Composite)Robot, mRootRobot is the topmost robot containing this ro...
Definition: ConcreteRobot.hpp:277
Robot interface for defining basic behaviors of a robot.
Definition: Robot.hpp:26
std::shared_ptr< dart::collision::BodyNodeCollisionFilter > mSelfCollisionFilter
Definition: ConcreteRobot.hpp:305
Definition: StateSpace.hpp:167
std::shared_ptr< Testable > TestablePtr
Definition: Testable.hpp:13
dart::dynamics::SkeletonPtr mParentSkeleton
Skeleton containing mRobot.
Definition: ConcreteRobot.hpp:287
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
virtual aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr getStateSpace() const =0