4 #include <boost/algorithm/clamp.hpp> 5 #include <eigen3/Eigen/Dense> 11 this->m_command_velocity_subscriber =
12 this->m_node_handle.subscribe<geometry_msgs::Twist>(
TOPIC_CMD_VEL, 1,
13 &NavigationStackControlConverter::convertCallback,
this);
15 this->m_drive_param_publisher = this->m_node_handle.advertise<drive_msgs::drive_param>(
TOPIC_DRIVE_PARAM, 10);
18 void NavigationStackControlConverter::convertCallback(
const geometry_msgs::Twist::ConstPtr& cmd_vel_message)
21 double velocity = cmd_vel_message->linear.x;
22 double angle = cmd_vel_message->angular.z;
43 servo_data = boost::algorithm::clamp(servo_data, 0.0, 1.0);
45 drive_msgs::drive_param control_message;
49 m_drive_param_publisher.publish(control_message);
constexpr double TRANSMISSION
Gear transmission inside the differential of the car. This is an estimate, the exact value is not kno...
NavigationStackControlConverter()
Initializes the publisher and subscriber.
constexpr const char * TOPIC_CMD_VEL
constexpr double STEERING_TO_SERVO_GAIN
Conversion factor from steering angle to servo input 1/radian.
constexpr double MAX_SERVO_POSITION
constexpr const char * TOPIC_DRIVE_PARAM
constexpr double STEERING_TO_SERVO_OFFSET
Position of the servo for normal wheel position.
constexpr double MAX_RPM_ELECTRICAL
Maximum electrical revolutions per minute for use in the VESC 1/min.
constexpr double ERPM_TO_SPEED
Conversion factor from electrical revolutions per minute to meters per second m/s * minute = m...