group_info.cpp
Go to the documentation of this file.
1 #include "group_info.hpp"
2 
3 namespace hebi {
4 
5 GroupInfo::GroupInfo(size_t number_of_modules)
6  : internal_(hebiGroupInfoCreate(number_of_modules)), number_of_modules_(number_of_modules) {
7  for (size_t i = 0; i < number_of_modules_; i++)
9 }
10 
12  if (internal_ != nullptr)
14 }
15 
16 size_t GroupInfo::size() const { return number_of_modules_; }
17 
18 const Info& GroupInfo::operator[](size_t index) const { return infos_[index]; }
19 
20 bool GroupInfo::writeGains(const std::string& file) const {
21  return hebiGroupInfoWriteGains(internal_, file.c_str()) == HebiStatusSuccess;
22 }
23 
24 Eigen::VectorXd GroupInfo::getSpringConstant() const {
25  Eigen::VectorXd res(number_of_modules_);
26  for (size_t i = 0; i < number_of_modules_; ++i) {
27  auto& info = infos_[i].settings().actuator().springConstant();
28  res[i] = (info) ? info.get() : std::numeric_limits<float>::quiet_NaN();
29  }
30  return res;
31 }
32 
33 void GroupInfo::getSpringConstant(Eigen::VectorXd& out) const {
34  if (out.size() != number_of_modules_) {
35  out.resize(number_of_modules_);
36  }
37 
38  for (size_t i = 0; i < number_of_modules_; ++i) {
39  auto& info = infos_[i].settings().actuator().springConstant();
40  out[i] = (info) ? info.get() : std::numeric_limits<float>::quiet_NaN();
41  }
42 }
43 
44 } // namespace hebi
size_t size() const
Returns the number of module infos in this group info.
Definition: group_info.cpp:16
Definition: arm.cpp:5
Info objects have various fields representing the module state; which fields are populated depends on...
Definition: info.hpp:33
void hebiGroupInfoRelease(HebiGroupInfoPtr info)
Frees resources created by the GroupInfo object.
HebiStatusCode hebiGroupInfoWriteGains(HebiGroupInfoPtr info, const char *file)
Export gains from a GroupInfo object into a file.
HebiGroupInfoPtr hebiGroupInfoCreate(size_t size)
Creates a GroupInfo for a group with the specified number of modules.
const Info & operator[](size_t index) const
Access the info for an individual module.
Definition: group_info.cpp:18
GroupInfo(size_t number_of_modules)
Create a group info with the specified number of modules.
Definition: group_info.cpp:5
bool writeGains(const std::string &file) const
Export the gains from this GroupInfo object into a file, creating it as necessary.
Definition: group_info.cpp:20
Eigen::VectorXd getSpringConstant() const
Convenience function for returning spring constant values.
Definition: group_info.cpp:24
~GroupInfo() noexcept
Destructor cleans up group info object as necessary.
Definition: group_info.cpp:11
std::vector< Info > infos_
Definition: group_info.hpp:34
HebiInfoPtr hebiGroupInfoGetModuleInfo(HebiGroupInfoPtr info, size_t module_index)
Get an individual info for a particular module at index module_index.
HebiGroupInfoPtr internal_
Definition: group_info.hpp:23
const size_t number_of_modules_
Definition: group_info.hpp:30


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Thu May 28 2020 03:14:44