/******************************************************************************
ROS 2 linearizing_controllers Package
Dynamics Linearizing Controller
- Copyright (C) 2014..2022 Walter Fetter Lages <w.fetter@ieee.org>
+ Copyright (C) 2014..2025 Walter Fetter Lages <w.fetter@ieee.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <tf2_msgs/msg/tf_message.hpp>
#include <controller_interface/controller_interface.hpp>
-#include <realtime_tools/realtime_buffer.h>
-#include <realtime_tools/realtime_publisher.h>
+#include <realtime_tools/realtime_buffer.hpp>
+#include <realtime_tools/realtime_publisher.hpp>
#include <arc_odometry/diff_odometry.hpp>
#include <linearizing_controllers_msgs/msg/dynamics_linearizing_controller_status.hpp>
/******************************************************************************
ROS 2 linearizing_controllers Package
Twist MR(A)C Linearizing Controller
- Copyright (C) 2018..2022 Walter Fetter Lages <w.fetter@ieee.org>
+ Copyright (C) 2018..2025 Walter Fetter Lages <w.fetter@ieee.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <tf2_msgs/msg//tf_message.hpp>
#include <controller_interface/controller_interface.hpp>
-#include <realtime_tools/realtime_buffer.h>
-#include <realtime_tools/realtime_publisher.h>
+#include <realtime_tools/realtime_buffer.hpp>
+#include <realtime_tools/realtime_publisher.hpp>
#include <arc_odometry/diff_odometry.hpp>
#include <linearizing_controllers_msgs/msg/twist_mrac_linearizing_controller_status.hpp>
v_.setZero();
lastSamplingTime_=get_node()->get_clock()->now();
for(unsigned int i=0;i < joints_.size();i++)
- phi_[i]=state_interfaces_[i].get_value();
+ phi_[i]=state_interfaces_[i].get_optional().value_or(phi_[i]);
struct sched_param param;
param.sched_priority=priority_;
// phi[1] is the right wheel angular displacement
Eigen::Vector2d deltaPhi=-phi_;
for(unsigned int i=0;i < joints_.size();i++)
- phi_[i]=state_interfaces_[i].get_value();
+ phi_[i]=state_interfaces_[i].get_optional().value_or(phi_[i]);
deltaPhi+=phi_;
odom_.update(deltaPhi,dt);
uModel_.setZero();
lastSamplingTime_=get_node()->get_clock()->now();
for(unsigned int i=0;i < joints_.size();i++)
- phi_[i]=state_interfaces_[i].get_value();
+ phi_[i]=state_interfaces_[i].get_optional().value_or(phi_[i]);
if(adaptive_)
{
// phi[1] is the right wheel angular displacement
Eigen::Vector2d deltaPhi=-phi_;
for(unsigned int i=0;i < joints_.size();i++)
- phi_[i]=state_interfaces_[i].get_value();
+ phi_[i]=state_interfaces_[i].get_optional().value_or(phi_[i]);
deltaPhi+=phi_;
odom_.update(deltaPhi,dt);