Aikido
Hand.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_ROBOT_HAND_HPP_
2 #define AIKIDO_ROBOT_HAND_HPP_
3 
4 #include <future>
5 #include <set>
6 #include <string>
7 #include <unordered_map>
8 
9 #include <dart/dart.hpp>
10 
12 #include "aikido/io/yaml.hpp"
14 
15 namespace aikido {
16 namespace robot {
17 
19 
20 class Hand
22 {
23 public:
24  virtual ~Hand() = default;
25 
28  virtual void grab(const dart::dynamics::SkeletonPtr& bodyToGrab) = 0;
29 
32  virtual void ungrab() = 0;
33 
36  virtual std::future<void> executePreshape(const std::string& preshapeName)
37  = 0;
38 
40  virtual void step(const std::chrono::system_clock::time_point& timepoint) = 0;
41 
43  virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const = 0;
44 
46  virtual dart::dynamics::MetaSkeletonPtr getMetaSkeleton() = 0;
47 
50  virtual dart::dynamics::BodyNode* getEndEffectorBodyNode() const = 0;
51 
55  virtual dart::dynamics::BodyNode* getHandBaseBodyNode() const = 0;
56 };
57 
58 } // namespace robot
59 } // namespace aikido
60 
61 #endif // AIKIDO_ROBOT_HAND_HPP_
aikido::robot::Hand::ungrab
virtual void ungrab()=0
Ungrabs an object.
aikido::robot::Hand::~Hand
virtual ~Hand()=default
aikido::robot::Hand
Abstract class for Hand interface.
Definition: Hand.hpp:21
aikido::robot::Hand::getMetaSkeleton
virtual dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const =0
Returns the metaskeleton corresponding to this hand.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::robot::Hand::step
virtual void step(const std::chrono::system_clock::time_point &timepoint)=0
Steps the robot (and underlying executors and subrobots) through time.
aikido::robot::Hand::grab
virtual void grab(const dart::dynamics::SkeletonPtr &bodyToGrab)=0
Grabs an object.
GrabMetadata.hpp
aikido::robot::Hand::getEndEffectorBodyNode
virtual dart::dynamics::BodyNode * getEndEffectorBodyNode() const =0
Get the end-effector body node for which IK can be created.
yaml.hpp
aikido::robot::Hand::getHandBaseBodyNode
virtual dart::dynamics::BodyNode * getHandBaseBodyNode() const =0
Get the body node which is the root of the hand, containing all fingers.
pointers.hpp
aikido::robot::Hand::executePreshape
virtual std::future< void > executePreshape(const std::string &preshapeName)=0
Sets the hand to the corresponding preshape (from preshapesUri).
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21