LINEARIZING_CONTROLLERS_PUBLIC
std::vector<hardware_interface::CommandInterface> on_export_reference_interfaces(void) override;
+
+ LINEARIZING_CONTROLLERS_PUBLIC
+ std::vector<hardware_interface::StateInterface> on_export_state_interfaces() override;
LINEARIZING_CONTROLLERS_PUBLIC
bool on_set_chained_mode(bool chained_mode) override;
return interfaces;
}
+ std::vector<hardware_interface::StateInterface> DynamicsLinearizingController::on_export_state_interfaces(void)
+ {
+ std::vector<hardware_interface::StateInterface> interfaces;
+
+ std::vector<std::string> names;
+ names.push_back("linear/velocity");
+ names.push_back("angular/velocity");
+
+ state_interfaces_values_.resize(names.size());
+
+ for(size_t i=0; i < names.size();i++)
+ {
+ // reference_interfaces_ is declared in the base class
+ interfaces.push_back(hardware_interface::StateInterface(std::string(get_node()->get_name()),names[i],&state_interfaces_values_[i]));
+ }
+
+ return interfaces;
+ }
+
bool DynamicsLinearizingController::on_set_chained_mode(bool /*chained_mode*/)
{
return true;
Eigen::Vector2d u;
odom_.getVelocity(u);
+
+ for(unsigned int i=0;i < u.size() && i < state_interfaces_values_.size();i++)
+ {
+ state_interfaces_values_[i]=u[i];
+ }
if(!std::isnan(reference_interfaces_[0]) && !std::isnan(reference_interfaces_[1]))
{