rm_controllers
Loading...
Searching...
No Matches
rm_chassis_controllers::BipedalController Class Reference

#include <controller.h>

Inheritance diagram for rm_chassis_controllers::BipedalController:
Collaboration diagram for rm_chassis_controllers::BipedalController:

Public Member Functions

 BipedalController ()=default
 
bool init (hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) override
 
void moveJoint (const ros::Time &time, const ros::Duration &period) override
 
void stopping (const ros::Time &time) override
 
bool getOverturn () const override
 
bool getStateChange () const override
 
bool getCompleteStand () const override
 
Eigen::Matrix< double, 4, CONTROL_DIM *STATE_DIM > getCoeffs () override
 
const std::shared_ptr< ModelParams > & getModelParams () const override
 
const std::shared_ptr< ControlParams > & getControlParams () const override
 
const std::shared_ptr< BiasParams > & getBiasParams () const override
 
const std::shared_ptr< LegStateThresholdParams > & getLegThresholdParams () const override
 
const std::shared_ptr< ChassisGeometryParams > & getChassisGeometryParams () const override
 
double getLegCmd () const override
 
double getJumpCmd () const override
 
int getBaseState () const override
 
double getDefaultLegLength () const override
 
geometry_msgs::Vector3 getVelCmd () override
 
bool getMoveFlag () const override
 
void setMoveFlag (const bool &move_flag) override
 
const ChassisState & getChassisState () override
 
LegState & getLegState (Side side) override
 
bool getDown5cmStairFlag () const override
 
void setDown5cmStairFlag (bool flag) override
 
void setStateChange (bool state) override
 
void setCompleteStand (bool state) override
 
void setJumpCmd (bool cmd) override
 
void setMode (int mode) override
 
void clearRecoveryFlag () override
 
double f_spring_force (double L0) override
 
void pubState () override
 
void pubLQRStatus (Eigen::Matrix< double, STATE_DIM, 1 > left_error, Eigen::Matrix< double, STATE_DIM, 1 > right_error, Eigen::Matrix< double, STATE_DIM, 1 > left_ref, Eigen::Matrix< double, STATE_DIM, 1 > right_ref, Eigen::Matrix< double, CONTROL_DIM, 1 > u_left, Eigen::Matrix< double, CONTROL_DIM, 1 > u_right, Eigen::Matrix< double, CONTROL_DIM, 1 > F_leg_, const bool unstick[2]) const override
 
void pubLegLenStatus (const bool &upstair_flag) override
 
void clearStatus () override
 
void pubDebugData (const std::string &name, double value) override
 
void setRecoveryLegSpdTurnback (bool recovery_leg_spd_turnback) override
 
bool getRecoveryLegSpdTurnback () const override
 
double getLegThetaOffset (const double &leg_len) override
 
- Public Member Functions inherited from rm_chassis_controllers::ChassisBase< rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface >
 ChassisBase ()=default
 
bool init (hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) override
 Get and check params for covariances. Setup odometry realtime publisher + odom message constant fields. init odom tf.
 
void update (const ros::Time &time, const ros::Duration &period) override
 Receive real_time command from manual. Execute different action according to current mode. Set necessary params of chassis. Execute power limit.
 
- Public Member Functions inherited from rm_chassis_controllers::BipedalControllerInterface
virtual ~BipedalControllerInterface ()=default
 

Additional Inherited Members

- Protected Types inherited from rm_chassis_controllers::ChassisBase< rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface >
enum  
 
- Protected Member Functions inherited from rm_chassis_controllers::ChassisBase< rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface >
void raw ()
 
virtual void follow (const ros::Time &time, const ros::Duration &period)
 The mode FOLLOW: chassis will follow gimbal.
 
void twist (const ros::Time &time, const ros::Duration &period)
 The mode TWIST: Just moving chassis.
 
void updateOdom (const ros::Time &time, const ros::Duration &period)
 Init frame on base_link. Integral vel to current_pos_ and angle.
 
void recovery ()
 Set chassis velocity to zero.
 
void tfVelToBase (const std::string &from)
 Transform tf velocity to base link frame.
 
virtual void powerLimit ()
 To limit the chassis power according to current power limit.
 
virtual void updatePowerStatus ()
 
void cmdChassisCallback (const rm_msgs::ChassisCmdConstPtr &msg)
 Write current command from rm_msgs::ChassisCmd.
 
void cmdVelCallback (const geometry_msgs::Twist::ConstPtr &msg)
 Write current command from geometry_msgs::Twist.
 
void initialize_parameters (ros::NodeHandle &controller_nh)
 
void slamCallback (const nav_msgs::Odometry::ConstPtr &msg)
 
void localizationCallback (const geometry_msgs::TransformStamped::ConstPtr &msg)
 
void capacityCallback (const rm_msgs::PowerManagementSampleAndStatusData::ConstPtr &msg)
 
- Protected Attributes inherited from rm_chassis_controllers::ChassisBase< rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface >
rm_control::RobotStateHandle robot_state_handle_
 
hardware_interface::EffortJointInterface * effort_joint_interface_
 
std::vector< hardware_interface::JointHandle > joint_handles_
 
realtime_tools::RealtimeBuffer< Command > cmd_rt_buffer_
 
realtime_tools::RealtimeBuffer< nav_msgs::Odometry > slam_rt_buffer_
 
realtime_tools::RealtimeBuffer< geometry_msgs::TransformStamped > localization_rt_buffer_
 
std::unique_ptr< realtime_tools::RealtimePublisher< nav_msgs::Odometry > > odom_pub_
 
std::unique_ptr< realtime_tools::RealtimePublisher< std_msgs::Float64 > > cpower_pub_
 
std::unique_ptr< realtime_tools::RealtimePublisher< std_msgs::Float64 > > epower_pub_
 
std::unique_ptr< realtime_tools::RealtimePublisher< std_msgs::Float64 > > chassis_power_pub_
 
rm_common::TfRtBroadcaster brcst4global_map2robot_odom_
 
rm_common::TfRtBroadcaster brcst4global_map2camera_init_
 
rm_common::TfRtBroadcaster brcst4robot_odom2robot_base_
 
geometry_msgs::TransformStamped global_map2robot_odom_
 
geometry_msgs::TransformStamped global_map2camera_init_
 
geometry_msgs::TransformStamped robot_odom2robot_base_
 
geometry_msgs::TransformStamped robot_base2lidar_base_
 
tf2::Transform T_global_map2robot_odom_
 
tf2::Transform T_robot_odom_2robot_base_
 
tf2::Transform T_lidar_odom2lidar_base_
 
tf2::Transform T_robot_base2lidar_base_
 
tf2::Transform T_global_map2lidar_odom_
 
ros::Subscriber cmd_vel_sub_
 
ros::Subscriber cmd_chassis_sub_
 
ros::Subscriber slam_sub_
 
ros::Subscriber localization_sub_
 
ros::Subscriber capacity_sub_
 
std::unique_ptr< RampFilter< double > > ramp_x_
 
std::unique_ptr< RampFilter< double > > ramp_y_
 
std::unique_ptr< RampFilter< double > > ramp_w_
 
double publish_rate_
 
bool publish_map_tf_
 
bool publish_odom_tf_
 
bool gravity_estimation_offset_
 
double roll_
 
double pitch_
 
double yaw_
 
double wheel_radius_
 
double twist_angular_
 
double max_odom_vel_
 
double timeout_
 
double chassis_power_
 
bool capacity_update_flag_
 
bool use_rls_
 
bool use_K_angle_
 
bool odom_initialized_
 
bool slam_updated_
 
bool localization_updated_
 
bool state_changed_
 
int state_
 
std::string follow_source_frame_
 
std::string command_source_frame_
 
std::string global_map_frame_id_
 
std::string robot_odom_frame_id_
 
std::string robot_base_frame_id_
 
std::string lidar_base_frame_id_
 
std::string slam_topic_
 
std::string localization_topic_
 
std::string capacity_topic_
 
ros::Time last_publish_time_
 
geometry_msgs::Vector3 vel_cmd_
 
std::array< double, 36 > twist_covariance_
 
control_toolbox::Pid pid_follow_
 
Command cmd_struct_
 
PowerLimitor wheel_power_limitor_
 

Constructor & Destructor Documentation

◆ BipedalController()

rm_chassis_controllers::BipedalController::BipedalController ( )
default

Member Function Documentation

◆ clearRecoveryFlag()

void rm_chassis_controllers::BipedalController::clearRecoveryFlag ( )
inlineoverridevirtual

◆ clearStatus()

void rm_chassis_controllers::BipedalController::clearStatus ( )
overridevirtual

◆ f_spring_force()

double rm_chassis_controllers::BipedalController::f_spring_force ( double L0)
overridevirtual

◆ getBaseState()

int rm_chassis_controllers::BipedalController::getBaseState ( ) const
inlineoverridevirtual

◆ getBiasParams()

const std::shared_ptr< BiasParams > & rm_chassis_controllers::BipedalController::getBiasParams ( ) const
inlineoverridevirtual

◆ getChassisGeometryParams()

const std::shared_ptr< ChassisGeometryParams > & rm_chassis_controllers::BipedalController::getChassisGeometryParams ( ) const
inlineoverridevirtual

◆ getChassisState()

const ChassisState & rm_chassis_controllers::BipedalController::getChassisState ( )
inlineoverridevirtual

◆ getCoeffs()

Eigen::Matrix< double, 4, CONTROL_DIM *STATE_DIM > rm_chassis_controllers::BipedalController::getCoeffs ( )
inlineoverridevirtual

◆ getCompleteStand()

bool rm_chassis_controllers::BipedalController::getCompleteStand ( ) const
inlineoverridevirtual

◆ getControlParams()

const std::shared_ptr< ControlParams > & rm_chassis_controllers::BipedalController::getControlParams ( ) const
inlineoverridevirtual

◆ getDefaultLegLength()

double rm_chassis_controllers::BipedalController::getDefaultLegLength ( ) const
inlineoverridevirtual

◆ getDown5cmStairFlag()

bool rm_chassis_controllers::BipedalController::getDown5cmStairFlag ( ) const
inlineoverridevirtual

◆ getJumpCmd()

double rm_chassis_controllers::BipedalController::getJumpCmd ( ) const
inlineoverridevirtual

◆ getLegCmd()

double rm_chassis_controllers::BipedalController::getLegCmd ( ) const
inlineoverridevirtual

◆ getLegState()

LegState & rm_chassis_controllers::BipedalController::getLegState ( Side side)
inlineoverridevirtual

◆ getLegThetaOffset()

double rm_chassis_controllers::BipedalController::getLegThetaOffset ( const double & leg_len)
inlineoverridevirtual

◆ getLegThresholdParams()

const std::shared_ptr< LegStateThresholdParams > & rm_chassis_controllers::BipedalController::getLegThresholdParams ( ) const
inlineoverridevirtual

◆ getModelParams()

const std::shared_ptr< ModelParams > & rm_chassis_controllers::BipedalController::getModelParams ( ) const
inlineoverridevirtual

◆ getMoveFlag()

bool rm_chassis_controllers::BipedalController::getMoveFlag ( ) const
inlineoverridevirtual

◆ getOverturn()

bool rm_chassis_controllers::BipedalController::getOverturn ( ) const
inlineoverridevirtual

◆ getRecoveryLegSpdTurnback()

bool rm_chassis_controllers::BipedalController::getRecoveryLegSpdTurnback ( ) const
inlineoverridevirtual

◆ getStateChange()

bool rm_chassis_controllers::BipedalController::getStateChange ( ) const
inlineoverridevirtual

◆ getVelCmd()

geometry_msgs::Vector3 rm_chassis_controllers::BipedalController::getVelCmd ( )
inlineoverridevirtual

◆ init()

bool rm_chassis_controllers::BipedalController::init ( hardware_interface::RobotHW * robot_hw,
ros::NodeHandle & root_nh,
ros::NodeHandle & controller_nh )
override

◆ moveJoint()

void rm_chassis_controllers::BipedalController::moveJoint ( const ros::Time & time,
const ros::Duration & period )
overridevirtual

◆ pubDebugData()

void rm_chassis_controllers::BipedalController::pubDebugData ( const std::string & name,
double value )
inlineoverridevirtual

◆ pubLegLenStatus()

void rm_chassis_controllers::BipedalController::pubLegLenStatus ( const bool & upstair_flag)
overridevirtual

◆ pubLQRStatus()

void rm_chassis_controllers::BipedalController::pubLQRStatus ( Eigen::Matrix< double, STATE_DIM, 1 > left_error,
Eigen::Matrix< double, STATE_DIM, 1 > right_error,
Eigen::Matrix< double, STATE_DIM, 1 > left_ref,
Eigen::Matrix< double, STATE_DIM, 1 > right_ref,
Eigen::Matrix< double, CONTROL_DIM, 1 > u_left,
Eigen::Matrix< double, CONTROL_DIM, 1 > u_right,
Eigen::Matrix< double, CONTROL_DIM, 1 > F_leg_,
const bool unstick[2] ) const
overridevirtual

◆ pubState()

void rm_chassis_controllers::BipedalController::pubState ( )
overridevirtual

◆ setCompleteStand()

void rm_chassis_controllers::BipedalController::setCompleteStand ( bool state)
inlineoverridevirtual

◆ setDown5cmStairFlag()

void rm_chassis_controllers::BipedalController::setDown5cmStairFlag ( bool flag)
inlineoverridevirtual

◆ setJumpCmd()

void rm_chassis_controllers::BipedalController::setJumpCmd ( bool cmd)
inlineoverridevirtual

◆ setMode()

void rm_chassis_controllers::BipedalController::setMode ( int mode)
inlineoverridevirtual

◆ setMoveFlag()

void rm_chassis_controllers::BipedalController::setMoveFlag ( const bool & move_flag)
inlineoverridevirtual

◆ setRecoveryLegSpdTurnback()

void rm_chassis_controllers::BipedalController::setRecoveryLegSpdTurnback ( bool recovery_leg_spd_turnback)
inlineoverridevirtual

◆ setStateChange()

void rm_chassis_controllers::BipedalController::setStateChange ( bool state)
inlineoverridevirtual

◆ stopping()

void rm_chassis_controllers::BipedalController::stopping ( const ros::Time & time)
override

The documentation for this class was generated from the following files: