rm_controllers
Loading...
Searching...
No Matches
calibration_base.h
Go to the documentation of this file.
1//
2// Created by guanlin on 23-3-14.
3//
4
5#pragma once
6
7#include <ros/ros.h>
8#include <controller_interface/multi_interface_controller.h>
9#include <rm_common/hardware_interface/actuator_extra_interface.h>
10#include <rm_common/hardware_interface/robot_state_interface.h>
11#include <rm_common/hardware_interface/gpio_interface.h>
12#include <hardware_interface/joint_command_interface.h>
13#include <effort_controllers/joint_velocity_controller.h>
14#include <effort_controllers/joint_position_controller.h>
15#include <control_msgs/QueryCalibrationState.h>
16
18{
19template <typename... T>
20class CalibrationBase : public controller_interface::MultiInterfaceController<T...>
21{
22public:
23 CalibrationBase() = default;
36 bool init(hardware_interface::RobotHW* robot_hw, ros::NodeHandle& root_nh, ros::NodeHandle& controller_nh) override;
43 void starting(const ros::Time& time) override;
44 void stopping(const ros::Time& time) override;
45
46protected:
55 bool isCalibrated(control_msgs::QueryCalibrationState::Request& req,
56 control_msgs::QueryCalibrationState::Response& resp);
57 ros::ServiceServer is_calibrated_srv_;
63 int state_{};
66 rm_control::ActuatorExtraHandle actuator_;
67 effort_controllers::JointVelocityController velocity_ctrl_;
68 effort_controllers::JointPositionController position_ctrl_;
69};
70
71} // namespace rm_calibration_controllers
Definition calibration_base.h:21
bool isCalibrated(control_msgs::QueryCalibrationState::Request &req, control_msgs::QueryCalibrationState::Response &resp)
Provide a service to know the state of target actuators.
Definition calibration_base.cpp:53
effort_controllers::JointPositionController position_ctrl_
Definition calibration_base.h:68
State
Definition calibration_base.h:59
@ CALIBRATED
Definition calibration_base.h:61
@ INITIALIZED
Definition calibration_base.h:60
rm_control::ActuatorExtraHandle actuator_
Definition calibration_base.h:66
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
double velocity_search_
Definition calibration_base.h:64
int state_
Definition calibration_base.h:63
ros::ServiceServer is_calibrated_srv_
Definition calibration_base.h:57
void starting(const ros::Time &time) override
Switch all of the actuators state to INITIALIZED.
Definition calibration_base.cpp:37
bool calibration_success_
Definition calibration_base.h:65
void stopping(const ros::Time &time) override
Definition calibration_base.cpp:47
effort_controllers::JointVelocityController velocity_ctrl_
Definition calibration_base.h:67
Definition calibration_base.h:18