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

#include <balance.h>

Inheritance diagram for rm_chassis_controllers::BalanceController:
Collaboration diagram for rm_chassis_controllers::BalanceController:

Public Member Functions

 BalanceController ()=default
 
bool init (hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) 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.
 

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

◆ BalanceController()

rm_chassis_controllers::BalanceController::BalanceController ( )
default

Member Function Documentation

◆ init()

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

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