rm_controllers
Loading...
Searching...
No Matches
upstairs.h
Go to the documentation of this file.
1//
2// Created by wk on 2025/11/1.
3//
4#pragma once
5
6#include <hardware_interface/joint_command_interface.h>
7#include <control_toolbox/pid.h>
8
9#include "rm_common/filters/filters.h"
10
14
16{
17class Upstairs : public ModeBase
18{
19public:
20 Upstairs(BipedalControllerInterface* controller_, const std::vector<hardware_interface::JointHandle*>& joint_handles,
21 const std::vector<control_toolbox::Pid*>& pid_legs, const std::vector<control_toolbox::Pid*>& pid_thetas);
22 void execute(const ros::Time& time, const ros::Duration& period) override;
23 const char* name() const override
24 {
25 return "Upstairs";
26 }
27
28private:
34 void detectLegState(const Eigen::Matrix<double, STATE_DIM, 1>& x, LegOrientation& leg_state);
35 inline LegCommand computePidLegCommand(double desired_length, double desired_angle, const VMCPtr& vmc_,
36 control_toolbox::Pid& length_pid, control_toolbox::Pid& angle_pid,
37 control_toolbox::Pid& angle_vel_pid, const LegOrientation& leg_state,
38 const ros::Duration& period, double& feedforward_force);
39
40 std::vector<hardware_interface::JointHandle*> joint_handles_;
41 std::vector<control_toolbox::Pid*> pid_legs_, pid_thetas_;
42 LegOrientation left_leg_orientation, right_leg_orientation;
43 std::shared_ptr<LegStateThresholdParams> leg_state_threshold_;
44 VMCPtr vmcPtr_;
45};
46} // namespace rm_chassis_controllers
Definition controller_interface.h:13
Definition mode_base.h:20
Definition upstairs.h:18
const char * name() const override
Definition upstairs.h:23
Upstairs(BipedalControllerInterface *controller_, const std::vector< hardware_interface::JointHandle * > &joint_handles, const std::vector< control_toolbox::Pid * > &pid_legs, const std::vector< control_toolbox::Pid * > &pid_thetas)
Definition upstairs.cpp:11
void execute(const ros::Time &time, const ros::Duration &period) override
Definition upstairs.cpp:19
Definition active_suspension.h:16
LegOrientation
Definition definitions.h:91
std::shared_ptr< VMC > VMCPtr
Definition VMC.h:68
Definition definitions.h:84