HEBI C++ API  1.0.0-rc1
group_command.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "hebi_group_command.h"
4 #include "Eigen/Eigen"
5 #include "command.hpp"
6 #include <vector>
7 
8 namespace hebi {
9 
14 class GroupCommand final
15 {
16  public:
17  #ifndef DOXYGEN_OMIT_INTERNAL
18 
22  HebiGroupCommandPtr internal_;
23  #endif // DOXYGEN_OMIT_INTERNAL
24 
25  private:
30  const bool manage_pointer_lifetime_;
34  const int number_of_modules_;
38  std::vector<Command> commands_;
39 
40  public:
44  GroupCommand(int number_of_modules);
45 
49  virtual ~GroupCommand() noexcept; /* annotating specified destructor as noexcept is best-practice */
50 
54  int size() const;
55 
59  Command& operator[](int index);
60 
67  void setPosition(const Eigen::VectorXd& position);
74  void setVelocity(const Eigen::VectorXd& velocity);
81  void setEffort(const Eigen::VectorXd& effort);
88  void setSpringConstant(const Eigen::VectorXd& springConstant);
89 
93  Eigen::VectorXd getPosition() const;
97  Eigen::VectorXd getVelocity() const;
101  Eigen::VectorXd getEffort() const;
105  Eigen::VectorXd getSpringConstant() const;
106 
110  void getPosition(Eigen::VectorXd& out) const;
114  void getVelocity(Eigen::VectorXd& out) const;
118  void getEffort(Eigen::VectorXd& out) const;
122  void getSpringConstant(Eigen::VectorXd& out) const;
123 
124 };
125 
126 } // namespace hebi
Command & operator[](int index)
Access the command for an individual module.
Definition: group_command.cpp:25
Command objects have various fields that can be set; when sent to the module, these fields control in...
Definition: command.hpp:29
Definition: color.hpp:5
GroupCommand(int number_of_modules)
Create a group command with the specified number of modules.
Definition: group_command.cpp:5
Eigen::VectorXd getVelocity() const
Convenience function for returning commanded velocity values.
Definition: group_command.cpp:70
virtual ~GroupCommand() noexcept
Destructor cleans up group command object as necessary.
Definition: group_command.cpp:14
int size() const
Returns the number of module commands in this group command.
Definition: group_command.cpp:20
Eigen::VectorXd getSpringConstant() const
Convenience function for returning commanded spring constant values.
Definition: group_command.cpp:90
Eigen::VectorXd getPosition() const
Convenience function for returning commanded position values.
Definition: group_command.cpp:60
Eigen::VectorXd getEffort() const
Convenience function for returning commanded effort values.
Definition: group_command.cpp:80
A list of Command objects appropriate for sending to a Group of modules; the size() must match the nu...
Definition: group_command.hpp:14
void setVelocity(const Eigen::VectorXd &velocity)
Convenience function for setting velocity commands from Eigen vectors.
Definition: group_command.cpp:37
void setSpringConstant(const Eigen::VectorXd &springConstant)
Convenience function for setting spring constant commands from Eigen vectors.
Definition: group_command.cpp:52
void setPosition(const Eigen::VectorXd &position)
Convenience function for setting position commands from Eigen vectors.
Definition: group_command.cpp:30
void setEffort(const Eigen::VectorXd &effort)
Convenience function for setting effort commands from Eigen vectors.
Definition: group_command.cpp:44