4 #include <SDL2/SDL_keycode.h> 7 #include <drive_msgs/drive_param.h> 8 #include <ros/package.h> 11 #include <std_msgs/Int32.h> 14 #include <dynamic_reconfigure/server.h> 15 #include <teleoperation/keyboard_controllerConfig.h> 62 double m_steering_speed = 6;
64 double m_acceleration = 0.4;
70 double m_fast_steer_limit = 0.6;
73 double m_steering_gravity = 2;
75 double m_throttle_gravity = 3;
77 double m_max_throttle = 0.35;
79 static constexpr
size_t KEY_COUNT = 6;
83 dynamic_reconfigure::Server<teleoperation::keyboard_controllerConfig> m_dyn_cfg_server;
85 ros::NodeHandle m_node_handle;
87 ros::Publisher m_drive_parameters_publisher;
88 ros::Publisher m_enable_manual_publisher;
89 ros::Publisher m_enable_autonomous_publisher;
91 ros::Subscriber m_drive_mode_subscriber;
95 SDL_Surface* m_image_locked;
96 SDL_Surface* m_image_manual;
97 SDL_Surface* m_image_autonomous;
99 std::array<bool, KEY_COUNT> m_key_pressed_state = { {
false,
false,
false,
false } };
101 double m_velocity = 0;
108 void pollWindowEvents();
110 void updateDriveParameters(
double delta_time);
112 void publishDriveParameters();
114 void updateDeadMansSwitch();
117 void timerCallback(
const ros::TimerEvent& event);
118 void driveModeCallback(
const std_msgs::Int32::ConstPtr& drive_mode_message);
125 void updateDynamicConfig();
constexpr const char * TOPIC_DRIVE_MODE
constexpr double PARAMETER_UPDATE_FREQUENCY
constexpr const char * TOPIC_HEARTBEAT_MANUAL
constexpr int SCREEN_EDGE_MARGIN
constexpr const char * TOPIC_HEARTBEAT_AUTONOMOUS
constexpr const char * TOPIC_DRIVE_PARAMETERS