Common
common packages for kyubic
 
Loading...
Searching...
No Matches
measure_parameter.hpp
Go to the documentation of this file.
1
10#ifndef _MEASURE_PARAMETER_HPP
11#define _MEASURE_PARAMETER_HPP
12
13#include <geometry_msgs/msg/wrench_stamped.hpp>
14#include <localization_msgs/msg/odometry.hpp>
16#include <rclcpp/rclcpp.hpp>
17
22namespace controller
23{
24
25const uint buf_size = 20;
26
30class MeasureParam : public rclcpp::Node
31{
32private:
33 rclcpp::Publisher<geometry_msgs::msg::WrenchStamped>::SharedPtr pub_;
34 rclcpp::Subscription<localization_msgs::msg::Odometry>::SharedPtr sub_odom_;
35
36 rclcpp::TimerBase::SharedPtr timer_;
37
38 std::shared_ptr<localization_msgs::msg::Odometry> odom_;
39
40 std::shared_ptr<controller::P_PIDController> p_pid_ctrl_;
41
42 const int timeout = 30; // [s]
43
44 std::string yaml_path;
45
46 double target_z_depth = 0;
47 double target_roll = 0;
48 double force_z = 0;
49 double torque_roll = 0;
50 double param_z = 0;
51 double param_roll = 0;
52
53 std::array<double, buf_size> buf_sens = {0};
54 std::array<double, buf_size> buf_out = {0};
55
56 bool z_measuring = false;
57 bool z_measured = false;
58 bool roll_measuring = false;
59 bool roll_measured = false;
60 size_t count = buf_size;
61 rclcpp::Time start_time;
62
67 void _save_yaml();
68
73 void callback_odom(localization_msgs::msg::Odometry::UniquePtr msg);
74
79 void pid_update();
80
86 bool _measure_z();
87
93 bool _measure_roll();
94
99 void measure();
100
101public:
106 explicit MeasureParam(const rclcpp::NodeOptions & options);
107};
108
109} // namespace controller
110
111#endif
MeasureParam class.
Definition: measure_parameter.hpp:31
For controller.
const uint buf_size
Definition: measure_parameter.hpp:25
P-PID Contorller for kyubic.