Go to the documentation of this file.
42 #include <geometry_msgs/TransformStamped.h>
43 #include <visualization_msgs/Marker.h>
44 #include <rm_gimbal_controllers/BulletSolverConfig.h>
45 #include <dynamic_reconfigure/server.h>
49 #include <std_msgs/Bool.h>
50 #include <std_msgs/Float64.h>
51 #include <rm_msgs/TrackData.h>
52 #include <rm_msgs/ShootBeforehandCmd.h>
70 bool solve(geometry_msgs::Point pos, geometry_msgs::Vector3 vel,
double bullet_speed,
double yaw,
double v_yaw,
71 double r1,
double r2,
double dz,
int armors_num,
double chassis_angular_vel_z);
72 double getGimbalError(geometry_msgs::Point pos, geometry_msgs::Vector3 vel,
double yaw,
double v_yaw,
double r1,
73 double r2,
double dz,
int armors_num,
double yaw_real,
double pitch_real,
double bullet_speed);
84 geometry_msgs::Point pos, geometry_msgs::Vector3 vel,
double yaw,
double v_yaw,
85 double r1,
double r2,
double dz,
int armors_num);
89 void reconfigCB(rm_gimbal_controllers::BulletSolverConfig& config, uint32_t);
93 std::shared_ptr<realtime_tools::RealtimePublisher<visualization_msgs::Marker>>
path_desire_pub_;
94 std::shared_ptr<realtime_tools::RealtimePublisher<visualization_msgs::Marker>>
path_real_pub_;
96 std::shared_ptr<realtime_tools::RealtimePublisher<std_msgs::Float64>>
fly_time_pub_;
100 dynamic_reconfigure::Server<rm_gimbal_controllers::BulletSolverConfig>*
d_srv_{};
double wait_next_armor_delay
std::shared_ptr< realtime_tools::RealtimePublisher< rm_msgs::ShootBeforehandCmd > > shoot_beforehand_cmd_pub_
double resistance_coff_qd_16
double ban_shoot_duration
int shoot_beforehand_cmd_
std::shared_ptr< realtime_tools::RealtimePublisher< std_msgs::Float64 > > fly_time_pub_
ros::Time switch_armor_time_
visualization_msgs::Marker marker_desire_
geometry_msgs::Point target_pos_
visualization_msgs::Marker marker_real_
double switch_hysteresis_
double resistance_coff_qd_18
void bulletModelPub(const geometry_msgs::TransformStamped &odom2pitch, const ros::Time &time)
double gimbal_switch_duration
double getGimbalError(geometry_msgs::Point pos, geometry_msgs::Vector3 vel, double yaw, double v_yaw, double r1, double r2, double dz, int armors_num, double yaw_real, double pitch_real, double bullet_speed)
BulletSolver(ros::NodeHandle &controller_nh)
double resistance_coff_qd_15
bool identified_target_change_
double wait_diagonal_armor_delay
ros::Subscriber identified_target_change_sub_
realtime_tools::RealtimeBuffer< Config > config_rt_buffer_
void identifiedTargetChangeCB(const std_msgs::BoolConstPtr &msg)
double resistance_coff_qd_30
std::shared_ptr< realtime_tools::RealtimePublisher< visualization_msgs::Marker > > path_desire_pub_
double getResistanceCoefficient(double bullet_speed) const
void judgeShootBeforehand(const ros::Time &time, double v_yaw)
bool dynamic_reconfig_initialized_
double max_track_target_vel_
void getSelectedArmorPosAndVel(geometry_msgs::Point &armor_pos, geometry_msgs::Vector3 &armor_vel, geometry_msgs::Point pos, geometry_msgs::Vector3 vel, double yaw, double v_yaw, double r1, double r2, double dz, int armors_num)
double track_move_target_delay
std::shared_ptr< realtime_tools::RealtimePublisher< visualization_msgs::Marker > > path_real_pub_
bool solve(geometry_msgs::Point pos, geometry_msgs::Vector3 vel, double bullet_speed, double yaw, double v_yaw, double r1, double r2, double dz, int armors_num, double chassis_angular_vel_z)
double min_shoot_beforehand_vel
void reconfigCB(rm_gimbal_controllers::BulletSolverConfig &config, uint32_t)
double max_chassis_angular_vel
double resistance_coff_qd_10
double track_rotate_target_delay
bool is_in_delay_before_switch_
dynamic_reconfigure::Server< rm_gimbal_controllers::BulletSolverConfig > * d_srv_