z1_sdk/include/unitree_arm_sdk/common/arm_common.h

133 lines
1.7 KiB
C
Raw Normal View History

2022-07-20 11:20:01 +08:00
#ifndef _UNITREE_ARM_ARM_COMMON_H_
#define _UNITREE_ARM_ARM_COMMON_H_
#include <stdint.h>
#pragma pack(1)
// 4 Byte
enum class ArmFSMState{
INVALID,
PASSIVE,
JOINTCTRL,
CARTESIAN,
MOVEJ,
MOVEL,
MOVEC,
TRAJECTORY,
TOSTATE,
SAVESTATE,
TEACH,
TEACHREPEAT,
CALIBRATION,
2022-09-13 19:52:44 +08:00
SETTRAJ,
2022-07-20 11:20:01 +08:00
DANCE00,
DANCE01,
DANCE02,
DANCE03,
DANCE04,
DANCE05,
DANCE06,
DANCE07,
DANCE08,
DANCE09,
BACKTOSTART,
GRIPPER_OPEN,
GRIPPER_CLOSE,
NEXT,
LOWCMD
};
// 4 Byte
enum class ArmFSMValue{
INVALID,
Q,A,
W,S,
E,D,
R,F,
T,G,
Y,H,
DOWN,
UP
};
2022-09-13 19:52:44 +08:00
enum class TrajType{
MoveJ,
MoveL,
MoveC,
Stop
};
2022-07-20 11:20:01 +08:00
// 20 Byte
struct JointCmd{
float T;
float W;
float Pos;
float K_P;
float K_W;
};
// 16 Byte
struct JointState{
2022-09-13 19:52:44 +08:00
float buf[0];
2022-07-20 11:20:01 +08:00
float T;
float W;
float Acc;
float Pos;
};
union UDPSendCmd{
uint8_t checkCmd;
JointCmd jointCmd[7];
};
2022-09-13 19:52:44 +08:00
2022-07-20 11:20:01 +08:00
// 16*7=112 Byte
union UDPRecvState{
JointState jointState[7];
uint8_t errorCheck[16];
};
2022-09-13 19:52:44 +08:00
2022-07-20 11:20:01 +08:00
// 24 Byte
struct Posture{
2022-09-13 19:52:44 +08:00
double roll;
double pitch;
double yaw;
double x;
double y;
double z;
2022-07-20 11:20:01 +08:00
};
2022-09-13 19:52:44 +08:00
struct TrajCmd{
TrajType trajType;
Posture posture[2];
double gripperPos;
double maxSpeed;
double stopTime;
int trajOrder;
2022-07-20 11:20:01 +08:00
};
union ValueUnion{
2022-09-13 19:52:44 +08:00
char name[10];
2022-07-20 11:20:01 +08:00
JointCmd jointCmd[7];
2022-09-13 19:52:44 +08:00
TrajCmd trajCmd;
2022-07-20 11:20:01 +08:00
};
struct SendCmd{
uint8_t head[2];
ArmFSMState state;
ArmFSMValue value;
ValueUnion valueUnion;
};
struct RecvState{
uint8_t head[2];
ArmFSMState state;
JointState jointState[7];
Posture cartesianState;
};
#pragma pack()
#endif // _UNITREE_ARM_ARM_MSG_H_