-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCalculate_Position.h
81 lines (64 loc) · 2.8 KB
/
Calculate_Position.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*****************************************************************************************************************************
******************************************************************************************************************************
姿勢計算に必要な関数をまとめたヘッダファイル
******************************************************************************************************************************
*****************************************************************************************************************************/
#pragma once
#include <stdio.h>
#include <math.h>
#include "Parameter.h"
#include "struct.h"
/************************************************************
マクロの定義
************************************************************/
//寸法
/************************************************************
構造体
************************************************************/
//enum{
// Stand=0, SwingR, SwingL,
// HipBase=0, AnkleBase,
//};
//インピーダンス制御による目標加速度・速度・位置
//struct motion_data{
// double pos[2]; // current position
// double vel[2]; // current velocity
// double acc[2]; // current accelaretion
//
// double prePos[2]; // current position
// double preVel[2]; // current velocity
// double preAcc[2]; // current accelaretion
//};
//
//struct leg_state{
// int support;
// int swing;
//};
////身体各部の座標(R,L X,Y)
//struct body_posi{
// double Hip[2][2];
// double Knee[2][2];
// double Ankle[2][2];
// double Sole[2][2];
// double Toe[2][2];
// double Heel[2][2];
// double Urg[2][2];
//
// //身体各部位の重心の状態(R,L)
// struct motion_data UppThigh[2]; //上腿の位置,速度,加速度
// struct motion_data LowThigh[2]; //下腿の位置,速度,加速度
// struct motion_data Foot[2]; //足の位置,速度,加速度
//
// struct motion_data Body; //胴体の重心座標(X,Y)
//
// double CoG[2]; //Center of Gravity (X,Y)
// double XZmp; //ZMP(X方向のみ、Y=0:床面上)
//};
/************************************************************
プロトタイプの宣言
************************************************************/
void Calculate_Position(double enc_data[2][3], struct leg_state *Leg, struct body_posi *body_posi, float *Yaw1, float *Roll, float *Pitch2, float *Yaw2); //simi MPU removed float *Pitch1,
void LegState( int state, struct leg_state *Leg );
double Calculation_Body_Orientation( double enc_data[3] );
void Calculation_Swing_Angle(double enc_data[2][3], struct leg_state *Leg, double theta[3], double body_ang); //, double body_ang
void Calculation_Body_Part_Pos(int mode, double enc_data[2][3], struct leg_state *Leg, struct body_posi *body_posi, float *Yaw1, float *Roll, float *Pitch2, float *Yaw2); //simi MPU removed float *Pitch1,