25 #ifndef THORMANG3_WALKING_MODULE_THORMANG3_ONLINEL_WALKING_H_ 26 #define THORMANG3_WALKING_MODULE_THORMANG3_ONLINEL_WALKING_H_ 31 #include <boost/thread.hpp> 32 #include <eigen3/Eigen/Eigen> 33 #include <yaml-cpp/yaml.h> 41 #define _USE_PD_BALANCE_ 66 bool setInitialPose(
double r_foot_x,
double r_foot_y,
double r_foot_z,
double r_foot_roll,
double r_foot_pitch,
double r_foot_yaw,
67 double l_foot_x,
double l_foot_y,
double l_foot_z,
double l_foot_roll,
double l_foot_pitch,
double l_foot_yaw,
68 double center_of_body_x,
double center_of_body_y,
double center_of_body_z,
69 double center_of_body_roll,
double center_of_body_pitch,
double center_of_body_yaw);
122 double wsin(
double time,
double period,
double period_shift,
double mag,
double mag_shift);
123 double wsigmoid(
double time,
double period,
double time_shift,
double mag,
double mag_shift,
double sigmoid_ratio,
double distortion_ratio);
robotis_framework::Pose3D present_left_foot_pose_
robotis_framework::Pose3D rhip_to_rfoot_pose_
double r_leg_to_body_pitch_gain_
double current_right_tz_Nm_
void setInitialLeftShoulderAngle(double shoulder_angle_rad)
double l_shoulder_out_angle_rad_
robotis_framework::Pose3D initial_left_foot_pose_
robotis_framework::Pose3D present_body_pose_
double l_leg_to_body_roll_gain_
void getReferenceStepDatafotAddition(robotis_framework::StepData *ref_step_data_for_addition)
double current_left_tx_Nm_
double left_fz_trajectory_start_time_
Eigen::MatrixXd mat_robot_to_rf_modified_
double r_elbow_out_angle_rad_
Eigen::MatrixXd mat_g_to_cob_
double left_fz_trajectory_shift_
robotis_framework::FifthOrderPolynomialTrajectory foot_x_tra_
double l_init_shoulder_angle_rad_
double l_leg_to_body_pitch_gain_
Eigen::MatrixXd mat_cob_to_robot_
robotis_framework::Pose3D initial_body_pose_
int current_start_idx_for_ref_zmp_
robotis_framework::FifthOrderPolynomialTrajectory foot_z_tra_
void setInitialRightElbowAngle(double elbow_angle_rad)
Eigen::MatrixXd mat_rfoot_to_rft_
double current_right_ty_Nm_
robotis_framework::FifthOrderPolynomialTrajectory body_z_tra_
double current_right_fz_N_
double present_waist_yaw_angle_rad_
double current_left_fx_N_
double out_angle_rad_[16]
Eigen::MatrixXd mat_cob_to_lhip_
double current_left_fy_N_
double shouler_swing_gain_
Eigen::MatrixXd rot_x_pi_3d_
Eigen::MatrixXd mat_g_to_rfoot_
double curr_angle_rad_[12]
double hip_roll_feedforward_angle_rad_
double current_right_fy_N_
void parseBalanceOffsetData(const std::string &path)
double current_left_tz_Nm_
double left_fz_trajectory_end_time_
double ref_zmp_x_at_this_time_
robotis_framework::Pose3D lhip_to_lfoot_pose_
robotis_framework::StepData reference_step_data_for_addition_
thormang3::BalanceControlUsingPDController balance_ctrl_
Eigen::MatrixXd mat_robot_to_cob_modified_
boost::mutex imu_data_mutex_lock_
Eigen::MatrixXd mat_lfoot_to_lft_
robotis_framework::MinimumJerkViaPoint * feed_forward_tra_
double r_shoulder_out_angle_rad_
Eigen::MatrixXd reference_zmp_x_
robotis_framework::Pose3D present_right_foot_pose_
Eigen::MatrixXd mat_robot_to_lfoot_
bool init_balance_offset_
Eigen::MatrixXd rot_z_pi_3d_
double current_left_ty_Nm_
bool setInitialPose(double r_foot_x, double r_foot_y, double r_foot_z, double r_foot_roll, double r_foot_pitch, double r_foot_yaw, double l_foot_x, double l_foot_y, double l_foot_z, double l_foot_roll, double l_foot_pitch, double l_foot_yaw, double center_of_body_x, double center_of_body_y, double center_of_body_z, double center_of_body_roll, double center_of_body_pitch, double center_of_body_yaw)
robotis_framework::FifthOrderPolynomialTrajectory foot_z_swap_tra_
Eigen::MatrixXd mat_robot_to_g_
robotis_framework::Pose3D previous_step_body_pose_
robotis_framework::FifthOrderPolynomialTrajectory waist_yaw_tra_
void setInitialRightShoulderAngle(double shoulder_angle_rad)
robotis_framework::Pose3D previous_step_left_foot_pose_
std::vector< robotis_framework::StepData > added_step_data_
robotis_framework::FifthOrderPolynomialTrajectory foot_roll_tra_
boost::mutex step_data_mutex_lock_
int getNumofRemainingUnreservedStepData()
void setCurrentIMUSensorOutput(double gyro_x, double gyro_y, double quat_x, double quat_y, double quat_z, double quat_w)
double current_right_tx_Nm_
double r_init_elbow_angle_rad_
robotis_framework::FifthOrderPolynomialTrajectory body_pitch_tra_
void setInitalWaistYawAngle(double waist_yaw_angle_rad)
Eigen::MatrixXd mat_robot_to_lf_modified_
double wsin(double time, double period, double period_shift, double mag, double mag_shift)
double current_right_fx_N_
Eigen::MatrixXd des_balance_offset_
int current_step_data_status_
Eigen::MatrixXd mat_cob_to_rhip_
Eigen::MatrixXd mat_rhip_to_cob_
robotis_framework::FifthOrderPolynomialTrajectory body_yaw_tra_
double current_imu_pitch_rad_
virtual ~THORMANG3OnlineWalking()
Eigen::MatrixXd mat_lhip_to_cob_
Eigen::MatrixXd mat_robot_to_rfoot_
Eigen::MatrixXd mat_cob_to_robot_modified_
double r_init_shoulder_angle_rad_
bool addStepData(robotis_framework::StepData step_data)
robotis_framework::FifthOrderPolynomialTrajectory hip_roll_swap_tra_
double previous_step_waist_yaw_angle_rad_
double goal_waist_yaw_angle_rad_
Eigen::MatrixXd mat_g_to_robot_
KinematicsDynamics * thormang3_kd_
robotis_framework::Pose3D previous_step_right_foot_pose_
robotis_framework::FifthOrderPolynomialTrajectory body_roll_tra_
Eigen::MatrixXd reference_zmp_y_
double ref_zmp_y_at_this_time_
robotis_framework::FifthOrderPolynomialTrajectory foot_pitch_tra_
robotis_framework::StepData current_step_data_
robotis_framework::Pose3D initial_right_foot_pose_
double l_leg_out_angle_rad_[6]
double r_leg_out_angle_rad_[6]
double current_imu_roll_rad_
thormang3::BalancePDController leg_angle_feed_back_[12]
Eigen::Quaterniond quat_current_imu_
double l_elbow_out_angle_rad_
void setRefZMPDecisionParameter(double X_ZMP_CenterShift, double Y_ZMP_CenterShift, double Y_ZMP_Convergence)
double total_mass_of_robot_
Eigen::VectorXi step_idx_data_
double current_gyro_roll_rad_per_sec_
double left_fz_trajectory_target_
double wsigmoid(double time, double period, double time_shift, double mag, double mag_shift, double sigmoid_ratio, double distortion_ratio)
void setInitialLeftElbowAngle(double elbow_angle_rad)
Eigen::MatrixXd mat_cob_to_g_
Eigen::MatrixXd mat_g_to_lfoot_
Eigen::MatrixXd mat_robot_to_cob_
robotis_framework::FifthOrderPolynomialTrajectory foot_yaw_tra_
robotis_framework::FifthOrderPolynomialTrajectory body_z_swap_tra_
Eigen::MatrixXd mat_current_imu_
double r_leg_to_body_roll_gain_
double current_left_fz_N_
robotis_framework::FifthOrderPolynomialTrajectory foot_y_tra_
double current_gyro_pitch_rad_per_sec_
double l_init_elbow_angle_rad_