gpio_calibration_controller.cpp
Go to the documentation of this file.
1 //
2 // Created by guanlin on 22-11-7.
3 //
4 
7 
9 {
11  ros::NodeHandle& controller_nh)
12 {
13  CalibrationBase::init(robot_hw, root_nh, controller_nh);
14  ros::NodeHandle pos_nh(controller_nh, "position");
16  if (!pos_nh.getParam("pos_threshold", position_threshold_))
17  {
18  ROS_ERROR("Position threshold was not specified (namespace: %s)", controller_nh.getNamespace().c_str());
19  return false;
20  }
21  if (!pos_nh.getParam("backward_angle", backward_angle_))
22  {
23  ROS_ERROR("Backward angle was not specified (namespace: %s)", controller_nh.getNamespace().c_str());
24  return false;
25  }
26  if (!controller_nh.getParam("velocity/slow_forward_velocity", slow_forward_velocity_))
27  {
28  ROS_ERROR("Slow forward velocity was not specified (namespace: %s)", controller_nh.getNamespace().c_str());
29  return false;
30  }
31  std::string gpio{};
32  if (!controller_nh.getParam("gpio", gpio))
33  {
34  ROS_ERROR("No gpio given (namespace: %s)", controller_nh.getNamespace().c_str());
35  return false;
36  }
37  if (!controller_nh.getParam("initial_gpio_state", initial_gpio_state_))
38  {
39  ROS_ERROR("No initial gpio states given (namespace: %s)", controller_nh.getNamespace().c_str());
40  return false;
41  }
43  return true;
44 }
45 
47 {
48  switch (state_)
49  {
50  case INITIALIZED:
51  {
54  break;
55  }
56  case FAST_FORWARD:
57  {
59  {
62  state_ = RETREAT;
63  }
64  else
65  velocity_ctrl_.update(time, period);
66  break;
67  }
68  case RETREAT:
69  {
71  position_ctrl_.update(time, period);
74  break;
75  }
76  case SLOW_FORWARD:
77  {
80  {
84  ROS_INFO("Joint %s calibrated", velocity_ctrl_.getJointName().c_str());
86  }
87  velocity_ctrl_.update(time, period);
88  break;
89  }
90  case CALIBRATED:
91  calibration_success_ = true;
92  }
93 }
94 } // namespace rm_calibration_controllers
95 
rm_calibration_controllers::GpioCalibrationController
Definition: gpio_calibration_controller.h:12
rm_calibration_controllers::GpioCalibrationController::position_threshold_
double position_threshold_
Definition: gpio_calibration_controller.h:28
rm_calibration_controllers::GpioCalibrationController::update
void update(const ros::Time &time, const ros::Duration &period) override
Definition: gpio_calibration_controller.cpp:46
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::position_ctrl_
effort_controllers::JointPositionController position_ctrl_
Definition: calibration_base.h:68
effort_controllers::JointVelocityController::update
void update(const ros::Time &time, const ros::Duration &period)
hardware_interface::InterfaceManager::get
T * get()
ros::NodeHandle::getParam
bool getParam(const std::string &key, bool &b) const
rm_calibration_controllers::GpioCalibrationController::slow_forward_velocity_
double slow_forward_velocity_
Definition: gpio_calibration_controller.h:28
effort_controllers::JointPositionController::init
bool init(hardware_interface::EffortJointInterface *robot, ros::NodeHandle &n)
effort_controllers::JointVelocityController::getJointName
std::string getJointName()
getHandle
ROSCONSOLE_CONSOLE_IMPL_DECL void * getHandle(const std::string &name)
rm_control::GpioStateInterface
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::velocity_search_
double velocity_search_
Definition: calibration_base.h:64
rm_control::ActuatorExtraHandle::setOffset
void setOffset(double offset)
rm_calibration_controllers::GpioCalibrationController::backward_angle_
double backward_angle_
Definition: gpio_calibration_controller.h:28
rm_calibration_controllers::GpioCalibrationController::start_retreat_position_
double start_retreat_position_
Definition: gpio_calibration_controller.h:28
controller_interface::ControllerBase
rm_calibration_controllers::GpioCalibrationController::SLOW_FORWARD
@ SLOW_FORWARD
Definition: gpio_calibration_controller.h:26
PLUGINLIB_EXPORT_CLASS
#define PLUGINLIB_EXPORT_CLASS(class_type, base_class_type)
rm_calibration_controllers::GpioCalibrationController::RETREAT
@ RETREAT
Definition: gpio_calibration_controller.h:25
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::state_
int state_
Definition: calibration_base.h:63
hardware_interface::RobotHW
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::INITIALIZED
@ INITIALIZED
Definition: calibration_base.h:60
rm_calibration_controllers::GpioCalibrationController::initial_gpio_state_
bool initial_gpio_state_
Definition: gpio_calibration_controller.h:30
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::actuator_
rm_control::ActuatorExtraHandle actuator_
Definition: calibration_base.h:66
effort_controllers::JointPositionController::update
void update(const ros::Time &time, const ros::Duration &period)
rm_control::ActuatorExtraHandle::getOffset
double getOffset() const
rm_calibration_controllers::CalibrationBase::init
bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) override
Get necessary params from param server. Init joint_calibration_controller.
Definition: calibration_base.cpp:14
effort_controllers::JointPositionController::command_struct_
Commands command_struct_
hardware_interface::EffortJointInterface
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::calibration_success_
bool calibration_success_
Definition: calibration_base.h:65
effort_controllers::JointPositionController::joint_
hardware_interface::JointHandle joint_
rm_calibration_controllers::GpioCalibrationController::gpio_state_handle_
rm_control::GpioStateHandle gpio_state_handle_
Definition: gpio_calibration_controller.h:29
effort_controllers::JointVelocityController::setCommand
void setCommand(double cmd)
rm_calibration_controllers
Definition: calibration_base.h:17
gpio_calibration_controller.h
effort_controllers::JointPositionController::setCommand
void setCommand(double pos_target)
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::CALIBRATED
@ CALIBRATED
Definition: calibration_base.h:61
ros::Time
hardware_interface::JointStateHandle::getPosition
double getPosition() const
rm_calibration_controllers::GpioCalibrationController::init
bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) override
Definition: gpio_calibration_controller.cpp:10
ROS_ERROR
#define ROS_ERROR(...)
class_list_macros.hpp
rm_calibration_controllers::GpioCalibrationController::FAST_FORWARD
@ FAST_FORWARD
Definition: gpio_calibration_controller.h:24
ros::NodeHandle::getNamespace
const std::string & getNamespace() const
rm_control::ActuatorExtraHandle::setCalibrated
void setCalibrated(bool calibrated)
ROS_INFO
#define ROS_INFO(...)
rm_control::GpioStateHandle::getValue
bool getValue() const
rm_control::ActuatorExtraHandle::getPosition
double getPosition() const
ros::Duration
rm_calibration_controllers::CalibrationBase< rm_control::ActuatorExtraInterface, rm_control::GpioStateInterface, hardware_interface::EffortJointInterface >::velocity_ctrl_
effort_controllers::JointVelocityController velocity_ctrl_
Definition: calibration_base.h:67
effort_controllers::JointVelocityController::joint_
hardware_interface::JointHandle joint_
ros::NodeHandle


rm_calibration_controllers
Author(s): Qiayuan Liao
autogenerated on Sun May 4 2025 02:57:14