Decision Module  1.0
ICRA2020 AI Challenge Northwestern Polytechnical University Aoxiang Team Strategy Code
roborts_decision::GimbalExecutor Class Reference

#include <gimbal_executor.h>

Public Types

enum  ExcutionMode { ExcutionMode::IDLE_MODE, ExcutionMode::ANGLE_MODE, ExcutionMode::RATE_MODE, ExcutionMode::PID_MODE }
 Gimbal execution mode for different tasks. More...
 
enum  GoalMode { GoalMode::GOAL_MODE_USE_GIMBAL_ANGLE, GoalMode::GOAL_MODE_USE_GIMBAL_RATE, GoalMode::GOAL_MODE_USE_PID }
 

Public Member Functions

 GimbalExecutor (const ros::NodeHandle &nh=ros::NodeHandle("~"))
 Constructor of GimbalExecutor. More...
 
 ~GimbalExecutor ()=default
 
void Execute (const geometry_msgs::PoseStamped &gimbal_angle, GoalMode goal_mode)
 
void Execute (geometry_msgs::Point32 &target, roborts_msgs::GimbalAngle &executor_gimbal_angle_)
 
void Execute (const roborts_msgs::GimbalAngle &gimbal_angle)
 
void Execute (const roborts_msgs::GimbalRate &gimbal_rate)
 
void Execute_ShootCmd (const uint16_t &mode_cmd, const uint16_t &num)
 Update the current gimbal executor state. More...
 
void Execute_FricWhl (const bool key, const double speed)
 
BehaviorState Update ()
 
void Cancel ()
 Cancel the current task and deal with the mode transition. More...
 
void PublishMsgs ()
 

Private Types

typedef actionlib::SimpleActionClient< roborts_msgs::PIDControllerTowardAngularAction > PIDControllerClient
 

Private Member Functions

void PIDControllerFeedbackCallback (const roborts_msgs::PIDControllerTowardAngularFeedbackConstPtr &pid_controller_toward_angular_feedback)
 

Private Attributes

ros::NodeHandle nh_
 
ExcutionMode excution_mode_
 execution mode of the executor More...
 
BehaviorState execution_state_
 execution state of the executor (same with behavior state) More...
 
ros::Publisher cmd_gimbal_rate_pub_
 gimbal rate control publisher in ROS More...
 
roborts_msgs::GimbalRate zero_gimbal_rate_
 zero gimbal rate in form of ROS roborts_msgs::GimbalRate More...
 
ros::Publisher cmd_gimbal_angle_pub_
 gimbal angle control publisher in ROS More...
 
ros::ServiceClient shoot_client_
 
ros::ServiceClient fric_wheel_client_
 
actionlib::SimpleActionClient< roborts_msgs::PIDControllerTowardAngularAction > pid_controller_client_
 pid controller actionlib client More...
 
roborts_msgs::PIDControllerTowardAngularGoal pid_controller_toward_angular_goal_
 

Member Typedef Documentation

◆ PIDControllerClient

typedef actionlib::SimpleActionClient<roborts_msgs::PIDControllerTowardAngularAction> roborts_decision::GimbalExecutor::PIDControllerClient
private

Member Enumeration Documentation

◆ ExcutionMode

Gimbal execution mode for different tasks.

Enumerator
IDLE_MODE 

Default idle mode with no task.

ANGLE_MODE 

Angle task mode.

RATE_MODE 

Rate task mode.

PID_MODE 

◆ GoalMode

Enumerator
GOAL_MODE_USE_GIMBAL_ANGLE 
GOAL_MODE_USE_GIMBAL_RATE 
GOAL_MODE_USE_PID 

Constructor & Destructor Documentation

◆ GimbalExecutor()

roborts_decision::GimbalExecutor::GimbalExecutor ( const ros::NodeHandle &  nh = ros::NodeHandle("~"))
explicit

Constructor of GimbalExecutor.

◆ ~GimbalExecutor()

roborts_decision::GimbalExecutor::~GimbalExecutor ( )
default

Member Function Documentation

◆ Cancel()

void roborts_decision::GimbalExecutor::Cancel ( )

Cancel the current task and deal with the mode transition.

◆ Execute() [1/4]

void roborts_decision::GimbalExecutor::Execute ( const geometry_msgs::PoseStamped &  gimbal_angle,
GoalMode  goal_mode 
)

◆ Execute() [2/4]

void roborts_decision::GimbalExecutor::Execute ( const roborts_msgs::GimbalAngle &  gimbal_angle)

◆ Execute() [3/4]

void roborts_decision::GimbalExecutor::Execute ( const roborts_msgs::GimbalRate &  gimbal_rate)

◆ Execute() [4/4]

void roborts_decision::GimbalExecutor::Execute ( geometry_msgs::Point32 &  target,
roborts_msgs::GimbalAngle &  executor_gimbal_angle_ 
)

◆ Execute_FricWhl()

void roborts_decision::GimbalExecutor::Execute_FricWhl ( const bool  key,
const double  speed 
)

◆ Execute_ShootCmd()

void roborts_decision::GimbalExecutor::Execute_ShootCmd ( const uint16_t &  mode_cmd,
const uint16_t &  num 
)

Update the current gimbal executor state.

Returns
Current gimbal executor state(same with behavior state)

◆ PIDControllerFeedbackCallback()

void roborts_decision::GimbalExecutor::PIDControllerFeedbackCallback ( const roborts_msgs::PIDControllerTowardAngularFeedbackConstPtr &  pid_controller_toward_angular_feedback)
private

◆ PublishMsgs()

void roborts_decision::GimbalExecutor::PublishMsgs ( )

◆ Update()

BehaviorState roborts_decision::GimbalExecutor::Update ( )

Member Data Documentation

◆ cmd_gimbal_angle_pub_

ros::Publisher roborts_decision::GimbalExecutor::cmd_gimbal_angle_pub_
private

gimbal angle control publisher in ROS

◆ cmd_gimbal_rate_pub_

ros::Publisher roborts_decision::GimbalExecutor::cmd_gimbal_rate_pub_
private

gimbal rate control publisher in ROS

◆ excution_mode_

ExcutionMode roborts_decision::GimbalExecutor::excution_mode_
private

execution mode of the executor

◆ execution_state_

BehaviorState roborts_decision::GimbalExecutor::execution_state_
private

execution state of the executor (same with behavior state)

◆ fric_wheel_client_

ros::ServiceClient roborts_decision::GimbalExecutor::fric_wheel_client_
private

◆ nh_

ros::NodeHandle roborts_decision::GimbalExecutor::nh_
private

◆ pid_controller_client_

actionlib::SimpleActionClient<roborts_msgs::PIDControllerTowardAngularAction> roborts_decision::GimbalExecutor::pid_controller_client_
private

pid controller actionlib client

◆ pid_controller_toward_angular_goal_

roborts_msgs::PIDControllerTowardAngularGoal roborts_decision::GimbalExecutor::pid_controller_toward_angular_goal_
private

◆ shoot_client_

ros::ServiceClient roborts_decision::GimbalExecutor::shoot_client_
private

◆ zero_gimbal_rate_

roborts_msgs::GimbalRate roborts_decision::GimbalExecutor::zero_gimbal_rate_
private

zero gimbal rate in form of ROS roborts_msgs::GimbalRate


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