Decision Module
1.0
ICRA2020 AI Challenge Northwestern Polytechnical University Aoxiang Team Strategy Code
|
Go to the documentation of this file. 1 #ifndef ROBORTS_DECISION_CHASSIS_EXECUTOR_H
2 #define ROBORTS_DECISION_CHASSIS_EXECUTOR_H
4 #include <actionlib/client/simple_action_client.h>
5 #include <nav_msgs/Odometry.h>
7 #include "roborts_msgs/GlobalPlannerAction.h"
8 #include "roborts_msgs/LocalPlannerAction.h"
9 #include "roborts_msgs/PIDControllerTowardAngularAction.h"
10 #include "roborts_msgs/TwistAccel.h"
11 #include "geometry_msgs/Twist.h"
13 #include "../behavior_tree/behavior_state.h"
14 #include "pid_controller/pid_controller.h"
24 typedef actionlib::SimpleActionClient<roborts_msgs::GlobalPlannerAction>
GlobalActionClient;
25 typedef actionlib::SimpleActionClient<roborts_msgs::LocalPlannerAction>
LocalActionClient;
26 typedef actionlib::SimpleActionClient<roborts_msgs::PIDControllerTowardAngularAction>
PIDControllerClient;
47 explicit ChassisExecutor(
const ros::NodeHandle &nh = ros::NodeHandle(
"~"));
53 void Execute(
const geometry_msgs::PoseStamped &goal);
59 void Execute(
const geometry_msgs::PoseStamped &goal,
GoalMode _goal_mode);
64 void Execute(
const geometry_msgs::Twist &twist);
69 void Execute(
const roborts_msgs::TwistAccel &twist_accel);
91 const roborts_msgs::GlobalPlannerResultConstPtr &global_planner_result);
134 #endif //ROBORTS_DECISION_CHASSIS_EXECUTOR_H
actionlib::SimpleActionClient< roborts_msgs::PIDControllerTowardAngularAction > PIDControllerClient
Definition: chassis_executor.h:28
ros::Publisher cmd_vel_acc_pub_
velocity with accel publisher in ROS
Definition: chassis_executor.h:119
void GlobalPlannerDoneCallback(const actionlib::SimpleClientGoalState &state, const roborts_msgs::GlobalPlannerResultConstPtr &global_planner_result)
Definition: chassis_executor.cpp:244
@ GOAL_FROM_ODOM_MODE
Goal-targeted task mode using odom data.
@ SPEED_MODE
Velocity task mode.
void Execute(const geometry_msgs::PoseStamped &goal)
Execute the goal-targeted task using global and local planner with actionlib.
Definition: chassis_executor.cpp:52
ros::Publisher cmd_vel_pub_
velocity control publisher in ROS
Definition: chassis_executor.h:114
roborts_msgs::TwistAccel zero_twist_accel_
zero twist with acceleration in form of ROS roborts_msgs::TwistAccel
Definition: chassis_executor.h:121
@ GOAL_MODE_USE_ODOM_DATA
uint32_t error_code_
Definition: chassis_executor.h:123
ExcutionMode execution_mode_
execution mode of the executor
Definition: chassis_executor.h:96
roborts_msgs::LocalPlannerGoal local_planner_goal_
local planner actionlib goal
Definition: chassis_executor.h:109
uint32_t GetErrorCode() const
Definition: chassis_executor.cpp:240
roborts_msgs::PIDControllerTowardAngularGoal pid_controller_toward_angular_goal_
pid controller actionlib goal
Definition: chassis_executor.h:111
actionlib::SimpleActionClient< roborts_msgs::PIDControllerTowardAngularAction > pid_controller_client_
pid controller actionlib client
Definition: chassis_executor.h:105
@ GOAL_USE_PLANNER_MODE
Goal-targeted task mode using global and local planner.
void GlobalPlannerFeedbackCallback(const roborts_msgs::GlobalPlannerFeedbackConstPtr &global_planner_feedback)
Definition: chassis_executor.cpp:224
roborts_msgs::GlobalPlannerGoal global_planner_goal_
global planner actionlib goal
Definition: chassis_executor.h:107
@ GOAL_MODE_USE_GOLBAL_LOCAL_PLANNER
ChassisExecutor(const ros::NodeHandle &nh=ros::NodeHandle("~"))
Constructor of ChassisExecutor.
Definition: chassis_executor.cpp:10
actionlib::SimpleActionClient< roborts_msgs::LocalPlannerAction > LocalActionClient
Definition: chassis_executor.h:27
@ IDLE_MODE
Default idle mode with no task.
Definition: behavior_test_node.h:14
~ChassisExecutor()=default
actionlib::SimpleActionClient< roborts_msgs::GlobalPlannerAction > global_planner_client_
global planner actionlib client
Definition: chassis_executor.h:101
BehaviorState execution_state_
execution state of the executor (same with behavior state)
Definition: chassis_executor.h:98
BehaviorState Update()
Update the current chassis executor state.
Definition: chassis_executor.cpp:132
actionlib::SimpleActionClient< roborts_msgs::GlobalPlannerAction > GlobalActionClient
Definition: chassis_executor.h:26
geometry_msgs::Twist zero_twist_
zero twist in form of ROS geometry_msgs::Twist
Definition: chassis_executor.h:116
void Cancel()
Cancel the current task and deal with the mode transition.
Definition: chassis_executor.cpp:196
@ SPEED_WITH_ACCEL_MODE
Velocity with acceleration task mode.
BehaviorState
Behavior state.
Definition: behavior_state.h:11
Definition: chassis_executor.h:22
void PIDControllerFeedbackCallback(const roborts_msgs::PIDControllerTowardAngularFeedbackConstPtr &pid_controller_toward_angular_feedback)
Definition: chassis_executor.cpp:236
ros::NodeHandle nh_
Definition: chassis_executor.h:86
ExcutionMode
Chassis execution mode for different tasks.
Definition: chassis_executor.h:34
actionlib::SimpleActionClient< roborts_msgs::LocalPlannerAction > local_planner_client_
local planner actionlib client
Definition: chassis_executor.h:103
GoalMode
Definition: chassis_executor.h:42