group_feedback.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "hebi.h"
4 
5 #include <vector>
6 
7 #include "Eigen/Eigen"
8 #include "feedback.hpp"
9 
10 namespace hebi {
11 
16 class GroupFeedback final {
17 public:
18 #ifndef DOXYGEN_OMIT_INTERNAL
19 
24 #endif // DOXYGEN_OMIT_INTERNAL
25 
26 private:
35  const size_t number_of_modules_;
39  std::vector<Feedback> feedbacks_;
40 
41 public:
45  GroupFeedback(size_t number_of_modules);
46 #ifndef DOXYGEN_OMIT_INTERNAL
47 
52  GroupFeedback(HebiGroupFeedbackPtr group_feedback);
53 #endif // DOXYGEN_OMIT_INTERNAL
54 
58  ~GroupFeedback() noexcept; /* annotating specified destructor as noexcept is best-practice */
59 
63  size_t size() const;
64 
68  const Feedback& operator[](size_t index) const;
69 
78  double getTime() const;
79 
88  uint64_t getTimeUs() const;
89 
93  Eigen::VectorXd getBoardTemperature() const;
97  Eigen::VectorXd getProcessorTemperature() const;
101  Eigen::VectorXd getVoltage() const;
105  Eigen::VectorXd getDeflection() const;
109  Eigen::VectorXd getDeflectionVelocity() const;
113  Eigen::VectorXd getMotorVelocity() const;
117  Eigen::VectorXd getMotorCurrent() const;
121  Eigen::VectorXd getMotorSensorTemperature() const;
125  Eigen::VectorXd getMotorWindingCurrent() const;
129  Eigen::VectorXd getMotorWindingTemperature() const;
133  Eigen::VectorXd getMotorHousingTemperature() const;
134 
138  Eigen::VectorXd getPosition() const;
142  Eigen::VectorXd getVelocity() const;
146  Eigen::VectorXd getEffort() const;
147 
151  Eigen::VectorXd getPositionCommand() const;
155  Eigen::VectorXd getVelocityCommand() const;
159  Eigen::VectorXd getEffortCommand() const;
160 
164  Eigen::MatrixX3d getAccelerometer() const;
168  Eigen::MatrixX3d getGyro() const;
169 
173  void getBoardTemperature(Eigen::VectorXd& out) const;
177  void getProcessorTemperature(Eigen::VectorXd& out) const;
181  void getVoltage(Eigen::VectorXd& out) const;
185  void getDeflection(Eigen::VectorXd& out) const;
189  void getDeflectionVelocity(Eigen::VectorXd& out) const;
193  void getMotorVelocity(Eigen::VectorXd& out) const;
197  void getMotorCurrent(Eigen::VectorXd& out) const;
201  void getMotorSensorTemperature(Eigen::VectorXd& out) const;
205  void getMotorWindingCurrent(Eigen::VectorXd& out) const;
209  void getMotorWindingTemperature(Eigen::VectorXd& out) const;
213  void getMotorHousingTemperature(Eigen::VectorXd& out) const;
214 
218  void getPosition(Eigen::VectorXd& out) const;
222  void getVelocity(Eigen::VectorXd& out) const;
226  void getEffort(Eigen::VectorXd& out) const;
227 
231  void getPositionCommand(Eigen::VectorXd& out) const;
235  void getVelocityCommand(Eigen::VectorXd& out) const;
239  void getEffortCommand(Eigen::VectorXd& out) const;
240 
244  void getAccelerometer(Eigen::MatrixX3d& out) const;
248  void getGyro(Eigen::MatrixX3d& out) const;
249 };
250 
251 } // namespace hebi
hebi::GroupFeedback::getMotorCurrent
Eigen::VectorXd getMotorCurrent() const
Convenience function for returning feedback motor current values.
Definition: group_feedback.cpp:102
HebiGroupFeedbackPtr
struct HebiGroupFeedback_ * HebiGroupFeedbackPtr
The C-style's API representation of a feedback object for a group of modules.
Definition: hebi.h:476
hebi::GroupFeedback
A list of Feedback objects that can be received from a Group of modules; the size() must match the nu...
Definition: group_feedback.hpp:16
hebi::GroupFeedback::getMotorVelocity
Eigen::VectorXd getMotorVelocity() const
Convenience function for returning feedback motor velocity values.
Definition: group_feedback.cpp:94
hebi::GroupFeedback::size
size_t size() const
Returns the number of module feedbacks in this group feedback.
Definition: group_feedback.cpp:26
hebi::GroupFeedback::getDeflectionVelocity
Eigen::VectorXd getDeflectionVelocity() const
Convenience function for returning feedback deflection velocity values.
Definition: group_feedback.cpp:86
hebi::GroupFeedback::internal_
HebiGroupFeedbackPtr internal_
Definition: group_feedback.hpp:23
hebi::GroupFeedback::getBoardTemperature
Eigen::VectorXd getBoardTemperature() const
Convenience function for returning feedback board temperature values.
Definition: group_feedback.cpp:53
hebi::GroupFeedback::getTimeUs
uint64_t getTimeUs() const
Gets a single wall-clock timestamp (in microseconds since the epoch) associated with the entire group...
Definition: group_feedback.cpp:42
hebi::GroupFeedback::getPositionCommand
Eigen::VectorXd getPositionCommand() const
Convenience function for returning commanded position values.
Definition: group_feedback.cpp:169
hebi::GroupFeedback::getMotorWindingTemperature
Eigen::VectorXd getMotorWindingTemperature() const
Convenience function for returning feedback motor winding temperature values.
Definition: group_feedback.cpp:127
hebi::GroupFeedback::~GroupFeedback
~GroupFeedback() noexcept
Destructor cleans up group feedback object as necessary.
Definition: group_feedback.cpp:21
hebi::GroupFeedback::GroupFeedback
GroupFeedback(size_t number_of_modules)
Create a group feedback with the specified number of modules.
Definition: group_feedback.cpp:5
hebi::GroupFeedback::getTime
double getTime() const
Gets a single wall-clock timestamp (in seconds since the epoch) associated with the entire group feed...
Definition: group_feedback.cpp:30
hebi::GroupFeedback::feedbacks_
std::vector< Feedback > feedbacks_
Definition: group_feedback.hpp:39
hebi
Definition: arm.cpp:5
hebi::GroupFeedback::getEffort
Eigen::VectorXd getEffort() const
Convenience function for returning feedback effort values.
Definition: group_feedback.cpp:160
hebi::GroupFeedback::getEffortCommand
Eigen::VectorXd getEffortCommand() const
Convenience function for returning commanded effort values.
Definition: group_feedback.cpp:185
hebi::GroupFeedback::getVelocity
Eigen::VectorXd getVelocity() const
Convenience function for returning feedback velocity values.
Definition: group_feedback.cpp:152
feedback.hpp
hebi::GroupFeedback::number_of_modules_
const size_t number_of_modules_
Definition: group_feedback.hpp:35
hebi::GroupFeedback::getProcessorTemperature
Eigen::VectorXd getProcessorTemperature() const
Convenience function for returning feedback processor temperature values.
Definition: group_feedback.cpp:61
hebi.h
hebi::GroupFeedback::getAccelerometer
Eigen::MatrixX3d getAccelerometer() const
Convenience function for returning feedback accelerometer values.
Definition: group_feedback.cpp:194
hebi::GroupFeedback::getVelocityCommand
Eigen::VectorXd getVelocityCommand() const
Convenience function for returning commanded velocity values.
Definition: group_feedback.cpp:177
hebi::GroupFeedback::manage_pointer_lifetime_
const bool manage_pointer_lifetime_
Definition: group_feedback.hpp:31
hebi::GroupFeedback::getMotorHousingTemperature
Eigen::VectorXd getMotorHousingTemperature() const
Convenience function for returning feedback motor housing temperature values.
Definition: group_feedback.cpp:135
hebi::GroupFeedback::getPosition
Eigen::VectorXd getPosition() const
Convenience function for returning feedback position values.
Definition: group_feedback.cpp:144
hebi::GroupFeedback::getVoltage
Eigen::VectorXd getVoltage() const
Convenience function for returning feedback voltage values.
Definition: group_feedback.cpp:69
hebi::GroupFeedback::getMotorWindingCurrent
Eigen::VectorXd getMotorWindingCurrent() const
Convenience function for returning feedback motor winding current values.
Definition: group_feedback.cpp:118
hebi::GroupFeedback::getGyro
Eigen::MatrixX3d getGyro() const
Convenience function for returning feedback gyroscope values.
Definition: group_feedback.cpp:211
hebi::Feedback
Feedback objects have various fields representing feedback from modules; which fields are populated d...
Definition: feedback.hpp:32
hebi::GroupFeedback::getMotorSensorTemperature
Eigen::VectorXd getMotorSensorTemperature() const
Convenience function for returning feedback motor sensor temperature values.
Definition: group_feedback.cpp:110
hebi::GroupFeedback::getDeflection
Eigen::VectorXd getDeflection() const
Convenience function for returning feedback deflection values.
Definition: group_feedback.cpp:78


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Fri Aug 2 2024 08:35:18