rm_controllers
Loading...
Searching...
No Matches
mode_manager.h
Go to the documentation of this file.
1//
2// Created by guanlin on 25-9-4.
3//
4
5#pragma once
6
7#include <control_toolbox/pid.h>
8
17
19{
21{
22public:
23 ModeManager(BipedalControllerInterface* controller, ros::NodeHandle& controller_nh,
24 const std::vector<hardware_interface::JointHandle*>& joint_handles);
25 virtual ~ModeManager() = default;
26 void switchMode(int mode)
27 {
28 mode_impl = mode_map_[mode];
29 }
30 const std::shared_ptr<ModeBase>& getModeImpl()
31 {
32 return mode_impl;
33 }
34
35private:
36 std::shared_ptr<ModeBase> mode_impl;
37 std::map<int, std::shared_ptr<ModeBase>> mode_map_;
38
39 control_toolbox::Pid pid_yaw_vel_, pid_left_leg_, pid_right_leg_, pid_theta_diff_, pid_roll_;
40 control_toolbox::Pid pid_left_leg_stand_up_, pid_right_leg_stand_up_;
41 control_toolbox::Pid pid_left_leg_theta_, pid_right_leg_theta_, pid_left_leg_theta_vel_, pid_right_leg_theta_vel_;
42 control_toolbox::Pid pid_left_wheel_vel_, pid_right_wheel_vel_, pid_wheel_vel_diff_;
43 std::vector<control_toolbox::Pid*> pid_wheels_, pid_legs_, pid_thetas_, pid_legs_stand_up_;
44};
45} // namespace rm_chassis_controllers
Definition controller_interface.h:13
Definition mode_manager.h:21
ModeManager(BipedalControllerInterface *controller, ros::NodeHandle &controller_nh, const std::vector< hardware_interface::JointHandle * > &joint_handles)
Definition mode_manager.cpp:9
void switchMode(int mode)
Definition mode_manager.h:26
const std::shared_ptr< ModeBase > & getModeImpl()
Definition mode_manager.h:30
Definition active_suspension.h:16