24 #ifndef THORMANG3_HEAD_CONTROL_MODULE_HEAD_CONTROL_MODULE_H_ 25 #define THORMANG3_HEAD_CONTROL_MODULE_HEAD_CONTROL_MODULE_H_ 29 #include <std_msgs/Empty.h> 30 #include <std_msgs/Float64.h> 31 #include <std_msgs/String.h> 32 #include <sensor_msgs/JointState.h> 33 #include <boost/thread.hpp> 34 #include <eigen3/Eigen/Eigen> 36 #include "robotis_controller_msgs/StatusMsg.h" 40 #include "thormang3_head_control_module_msgs/HeadJointPose.h" 52 void process(std::map<std::string, robotis_framework::Dynamixel *> dxls, std::map<std::string, double> sensors);
83 Eigen::MatrixXd
calcMinimumJerkTraPVA(
double pos_start,
double vel_start,
double accel_start,
double pos_end,
84 double vel_end,
double accel_end,
double smp_time,
double mov_time);
boost::thread * tra_gene_thread_
void lidarJointTraGeneThread()
void setHeadJointTimeCallback(const thormang3_head_control_module_msgs::HeadJointPose::ConstPtr &msg)
std::map< std::string, int > using_joint_name_
Eigen::MatrixXd goal_position_
Eigen::MatrixXd calcLinearInterpolationTra(double pos_start, double pos_end, double smp_time, double mov_time)
const double SCAN_START_ANGLE
const double SCAN_END_ANGLE
void publishDoneMsg(const std::string done_msg)
void startMoveLidar(double target_angle)
Eigen::MatrixXd current_position_
virtual ~HeadControlModule()
ros::Publisher movement_done_pub_
void get3DLidarCallback(const std_msgs::String::ConstPtr &msg)
double original_position_lidar_
ros::Publisher status_msg_pub_
Eigen::MatrixXd calcMinimumJerkTraPVA(double pos_start, double vel_start, double accel_start, double pos_end, double vel_end, double accel_end, double smp_time, double mov_time)
Eigen::MatrixXd target_position_
void setHeadJointCallback(const sensor_msgs::JointState::ConstPtr &msg)
Eigen::MatrixXd calc_joint_accel_tra_
void jointTraGeneThread()
Eigen::MatrixXd goal_velocity_
Eigen::MatrixXd calc_joint_tra_
void publishStatusMsg(unsigned int type, std::string msg)
Eigen::MatrixXd calc_joint_vel_tra_
void initialize(const int control_cycle_msec, robotis_framework::Robot *robot)
boost::thread queue_thread_
ros::Publisher moving_head_pub_
void process(std::map< std::string, robotis_framework::Dynamixel * > dxls, std::map< std::string, double > sensors)
void publishLidarMoveMsg(std::string msg_data)
void get3DLidarRangeCallback(const std_msgs::Float64::ConstPtr &msg)
void beforeMoveLidar(double start_angle)
Eigen::MatrixXd goal_acceleration_