|
@@ -191,6 +191,24 @@ void FingerGuessing::Process(int time_stamp, int* right_pos, int* right_att, int
|
|
int* left_pos, int* left_att, int* left_acc, int left_zupt, int left_front_press, int left_back_press,
|
|
int* left_pos, int* left_att, int* left_acc, int left_zupt, int left_front_press, int left_back_press,
|
|
int jump, int down, int rssi)
|
|
int jump, int down, int rssi)
|
|
{
|
|
{
|
|
|
|
+
|
|
|
|
+ //由于刚触地的时候,会偶尔丢掉触地信号的关键帧,现在在线补充一下
|
|
|
|
+
|
|
|
|
+ int online_zupt = extract_motion.online_detect_touch_floor( right_front_press, left_front_press, right_back_press, left_back_press);
|
|
|
|
+
|
|
|
|
+ if (online_zupt & 0x01)
|
|
|
|
+ {
|
|
|
|
+ std::cout << "test :: left_zupt" << endl;
|
|
|
|
+ left_zupt = 1;
|
|
|
|
+ }
|
|
|
|
+ if (online_zupt & 0x02)
|
|
|
|
+ {
|
|
|
|
+ std::cout << "test :: right_zupt" << endl;
|
|
|
|
+ right_zupt = 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
//缓存一步内的空中数据
|
|
//缓存一步内的空中数据
|
|
setData(right_shoes_data_vector, time_stamp, right_pos[0] * 0.001f, right_pos[1] * 0.001f, right_pos[2] * 0.001f,
|
|
setData(right_shoes_data_vector, time_stamp, right_pos[0] * 0.001f, right_pos[1] * 0.001f, right_pos[2] * 0.001f,
|
|
right_att[0] * 0.0001f, right_att[1] * 0.0001f, right_att[2] * 0.0001f, right_zupt, rssi);
|
|
right_att[0] * 0.0001f, right_att[1] * 0.0001f, right_att[2] * 0.0001f, right_zupt, rssi);
|
|
@@ -217,6 +235,8 @@ void FingerGuessing::Process(int time_stamp, int* right_pos, int* right_att, int
|
|
//根据过往记录的位置点来,来优化
|
|
//根据过往记录的位置点来,来优化
|
|
//ProcessResult(left_global_pos, left_step_data_vector, left_global_pos_vector, LEFT_FOOT);
|
|
//ProcessResult(left_global_pos, left_step_data_vector, left_global_pos_vector, LEFT_FOOT);
|
|
|
|
|
|
|
|
+ addMotionCount(STEP_COUNT);
|
|
|
|
+
|
|
left_cmd_step_data_vector = left_step_data_vector;
|
|
left_cmd_step_data_vector = left_step_data_vector;
|
|
|
|
|
|
float dy = left_step_data_vector.back().pos_y - left_step_data_vector.front().pos_y;
|
|
float dy = left_step_data_vector.back().pos_y - left_step_data_vector.front().pos_y;
|
|
@@ -243,6 +263,8 @@ void FingerGuessing::Process(int time_stamp, int* right_pos, int* right_att, int
|
|
//根据过往记录的位置点来,来优化
|
|
//根据过往记录的位置点来,来优化
|
|
//ProcessResult(right_global_pos, right_step_data_vector, right_global_pos_vector, RIGHT_FOOT);
|
|
//ProcessResult(right_global_pos, right_step_data_vector, right_global_pos_vector, RIGHT_FOOT);
|
|
|
|
|
|
|
|
+ addMotionCount(STEP_COUNT);
|
|
|
|
+
|
|
right_cmd_step_data_vector = right_step_data_vector;
|
|
right_cmd_step_data_vector = right_step_data_vector;
|
|
|
|
|
|
float dy = right_step_data_vector.back().pos_y - right_step_data_vector.front().pos_y;
|
|
float dy = right_step_data_vector.back().pos_y - right_step_data_vector.front().pos_y;
|