Flexiv RDK APIs  1.7.0
work_coord.hpp
Go to the documentation of this file.
1 
6 #ifndef FLEXIV_RDK_WORK_COORD_HPP_
7 #define FLEXIV_RDK_WORK_COORD_HPP_
8 
9 #include "robot.hpp"
10 
11 namespace flexiv {
12 namespace rdk {
13 
19 class WorkCoord
20 {
21 public:
27  WorkCoord(const Robot& robot);
28  virtual ~WorkCoord();
29 
36  std::vector<std::string> list() const;
37 
45  bool exist(const std::string& name) const;
46 
56  std::array<double, kPoseSize> pose(const std::string& name) const;
57 
71  void Add(const std::string& name, const std::array<double, kPoseSize>& pose);
72 
86  void Update(const std::string& name, const std::array<double, kPoseSize>& pose);
87 
97  void Remove(const std::string& name);
98 
99 private:
100  class Impl;
101  std::unique_ptr<Impl> pimpl_;
102 };
103 
104 } /* namespace rdk */
105 } /* namespace flexiv */
106 
107 #endif /* FLEXIV_RDK_WORK_COORD_HPP_ */
Main interface to control the robot, containing several function categories and background services.
Definition: robot.hpp:25
Interface to manage work coordinates of the robot. All updates take effect immediately without a powe...
Definition: work_coord.hpp:20
WorkCoord(const Robot &robot)
[Non-blocking] Instantiate the work coordinate interface.
void Add(const std::string &name, const std::array< double, kPoseSize > &pose)
[Blocking] Add a new work coordinate with user-specified parameters.
void Update(const std::string &name, const std::array< double, kPoseSize > &pose)
[Blocking] Update the pose of an existing work coordinate.
std::vector< std::string > list() const
[Blocking] A list of all configured work coordinates.
void Remove(const std::string &name)
[Blocking] Remove an existing work coordinate.
std::array< double, kPoseSize > pose(const std::string &name) const
[Blocking] Pose of an existing work coordinate.
bool exist(const std::string &name) const
[Blocking] Whether the specified work coordinate already exists.