123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704 |
- #ifndef COMMON_H
- #define COMMON_H
- #include <cstring>
- #include <string>
- #include "com_define.h"
- // #include <Eigen/Dense>
- typedef struct ROBOT_CONFIG_
- {
- //utility
- double dt;
- double legIsRightLst[LEG_NUMBER];
- //kinematics and dynamics
- double l0;
- double l1;
- double l2;
- double lMin2;
- double hip[LEG_NUMBER][3];
- double legs_offset[LEG_NUMBER];
- //dynamics
- double m;
- double inertia[3][3];
- double leg_m;
- //control paramters
- double legStiffSw[3];
- double legStiffSt[3];
- double legDamp[3];
- double legStiffSphSw[3];
- double legStiffSphSt[3];
- double legDampSph[3];
- double jntStiffSw[3];
- double jntStiffSt[3];
- double jntDamp[3];
- double qddKp[3];
- double qddKd[3];
- //gait parameters
- double offset_lst[LEG_NUMBER];
- double stdP[LEG_NUMBER][3];
- double bodyH;
- // constraints
- double wdMax;
- //compensation
- double fricComp[3];
-
- }ROBOT_CONFIG;
- typedef union {
- float array[3];
- struct {
- float x;
- float y;
- float z;
- } axis;
- } MeasurementVector;
- typedef union {
- float array[3];
- struct {
- float roll;
- float pitch;
- float yaw;
- } axis;
- } EulerAngleVector;
- typedef union{
- double array[9];
- } Covariance;
- /**
- * @brief Quaternion.
- */
- typedef union {
- float array[4];
- struct {
- float w;
- float x;
- float y;
- float z;
- } element;
- } QuaternionVector;
- typedef union {
- float array[3];
- struct {
- float x;
- float y;
- float z;
- } axis;
- } GPSVector;
- typedef struct TOP_CONFIG_INFO_{
- std::string robot_type;
- ROBOT_DRIVER_TYPES body_model;
- }TOP_CONFIG_INFO;
- namespace robot_control
- {
- namespace common
- {
- const int GAIT_MSG_CAPACITY = 200;
- enum class CoreState {
- BOOT = 0,
- IDLE = 1,
- JOINTS_TEST = 2,
- STAND_STILL = 3,
- IN_PLANNING = 4
- };
- enum GaitMsgType //这里如果修改成enum class,需要芳勇配合修改参数接口
- {
- GMT_NO_MSG = 0,
- GMT_START = 1,
- GMT_ONLINE = 2,
- GMT_EM_STOP = 3,
- GMT_JOINT_CONTROL = 4,
- GMT_GAIT_MODE = 5
- };
- enum GaitID //这里如果修改成enum class,需要芳勇配合修改参数接口
- {
- GID_NO_GAIT = 0,
- GID_IDLE_GAIT = 1,
- GID_STANDSTILL = 2,
- GID_RECOVER = 3,
- GID_HEX_NIMBLE = 4,
- GID_JOINT_TEST = 5,
- GID_RL = 6, //强化学习步态
- GID_JOINT_TRAJECTORY_CONTROL = 7,
- GID_POSE_ADJUSTMENT=8,
- GID_FOOT_ADJUST=9,
- GID_LEG_TEST=10,
- GID_QUA_NIMBLE = 11,
- GID_MAX = 12
- };
- class GaitMsgHeader
- {
- public:
- short int gait_msg_type;
- short int gait_id;
- int data_length;
- };
- class GaitMsg
- {
- public:
- GaitMsgHeader header;
- char data[GAIT_MSG_CAPACITY];
- inline int getAllDataLength()
- {
- return header.data_length + sizeof(GaitMsgHeader);
- }
- };
- class Pose
- {
- public:
- float q[4];
- float gyro[3];
- float acc[3];
- };
- class ModelInput
- {
- public:
- unsigned long count;
- double actual_pos[MOTOR_NUM];
- double actual_vel[MOTOR_NUM];
- double actual_trq[MOTOR_NUM]; // trq read from the motor current
- double mea_trq[MOTOR_NUM]; // trq read from the torque sensor
- Pose body_pose;
- GaitMsg gait_msg;
- bool is_stand_up;
- int planner_stage;
- public:
- ModelInput()
- {
- is_stand_up = false;
- }
- };
- struct JointTestData
- {
- unsigned int axis_bitmask;
- float mag;
- float period;
- float kp_pos;
- float kd_pos;
- float kp_cur;
- float mu_clb;
- int test_type;
- };
- class ModelOutput
- {
- public:
- unsigned long count;
- double target_pos[MOTOR_NUM];
- double target_vel[MOTOR_NUM];
- double target_trq[MOTOR_NUM];
- double target_kp[MOTOR_NUM];
- double target_kd[MOTOR_NUM];
- CoreState core_state;
- GaitID current_gait_id;
- };
- typedef struct MC_QUATERNIONS_{
- float x;
- float y;
- float z;
- float w;
- }MC_QUATERNIONS;
- typedef struct MC_COORDINATE_{
- float x;
- float y;
- float z;
- }MC_COORDINATE;
- typedef struct MC_MOTION_IMU_DATA_{
- uint64_t timestamp;
- MC_QUATERNIONS orientation;
- double orientation_covariance[9];
- MC_COORDINATE angular_velocity;
- double angular_velocity_covariance[9];
- MC_COORDINATE linear_acceleration;
- double linear_acceleration_covariance[9];
- }MC_MOTION_IMU_DATA;
- typedef struct JOY_KEY_TYPE_{
- bool stand_up;
- int move_mode;
- int speed_gear;
- double dynamic_speed_x;
- double dynamic_speed_y;
- double static_speed_x;
- double static_speed_y;
- }JOY_KEY_TYPE;
- typedef enum ROBOT_DIRECTION_{
- FRONT = 0,
- REAR,
- LEFT,
- RIGHT
- }ROBOT_DIRECTION;
- typedef struct ROBOT_TWIST_{
- MC_COORDINATE linear;
- MC_COORDINATE angular;
- }ROBOT_TWIST;
- //0: Trot(默认)1: 奔跑 2: 跳跃 3: Saturn标志动作
- typedef enum ROBOT_GAIT_{
- TROT = 0,
- RUN,
- JUMP,
- SATURN,
- NIMBLE
- }ROBOT_GAIT;
- //int32 model = 1; //0: 自主导航, 1,遥控控制
- typedef enum ROBOT_CONTROL_MOVE_MODE_{
- NAVIGATION = 0,
- JOY
- }ROBOT_CONTROL_MOVE_MODE;
- typedef enum DRIVER_ENABLE_STATE_{
- UNKNOW = 0,
- ENABLED,
- ENABLING,
- ENABLE_FAILED,
- DISABLED
- }DRIVER_ENABLE_STATE;
- typedef enum EQA_STATE_{
- EQA_NULL = 0,
- LISTEN = 1,
- THINK = 2,
- EXECUTE = 3
- }EQA_STATE;
- //scene = 1; //0: 平地 , 1: 楼梯 , 2: 沟壑 , 3: 陡坡 , 4: 限高
- typedef enum SCENE_TYPE_{
- NULL_SCENE = 0,
- LIE_DOWN = 1,
- WALKING = 2,
- STAIRS = 3,
- CHARGE = 4,
- PERCEIVE_STAIRS = 5,
- SNOW = 6,
- SLIPPY = 7,
- STONE = 8
- }SCENE_TYPE;
- //机器人场景切换状态枚举
- typedef enum SCENE_SWITCH_STATE_{
- NULL_SCENE_SWITCH = 0,
- SWITCHING = 1,
- SWITCH_SUCCEEDED = 2,
- SWITCH_FAILED = 3
- }SCENE_SWITCH_STATE;
- typedef enum BODY_POSTURE_STATE_{
- NULL_POSTURE = 0,
- STARTMOVING = 1,
- MOVING = 2,
- LIEDOWN = 3,
- STANDUP = 4,
- CHARGING=5 //在桩上 可能是充电,也可能已经充满了
- }BODY_POSTURE_STATE;
- //相机位置
- typedef enum CHARGE_POSITION_STATE_{
- NULL_POSITION = 0,
- POSITION_OFF = 1, //找不到位置 默认状态
- POSITION_FINDING = 2,//搜寻位置此时需要用户手动控制机器人进行移动
- POSITION_ONLINE = 3, //位置信息在线
- POSITION_FAILED = 4 //用户调整超时后进入该状态,考虑二维码破损造成的情况
- }CHARGE_POSITION_STATE;
- //上桩过程枚举
- typedef enum CHARGE_SWITCH_STATE_{
- NULL_CHARGE_SWITCH = 0,
- EXIT_SUCCEEDED = 1,
- EXITING_TILE = 2,
- EXIT_FAILED=3,
- ENTER_SUCCEEDED = 4,
- ENTERING_TILE = 5,
- ENTER_FAILED=6 //尝试上桩超过三次后进入该状态
- }CHARGE_SWITCH_STATE;
- typedef enum AUTO_CHARGE_STATE_{
- null_charge = 0,
- uncharge = 1,
- charging = 2,
- charge_finished = 3
- }AUTO_CHARGE_STATE;
- typedef struct ROBOT_BATTERY_INFO_{
- float level; //机器人电池当前电量
- AUTO_CHARGE_STATE state; //用来表示机器人电池 没充电 ,充电中,充电结束的状态
- }ROBOT_BATTERY_INFO;
- typedef struct BODY_ODOMETRY_{
- ROBOT_TWIST twist;
- //geometry_msgs/Pose Point & Quaternion
- MC_COORDINATE point;
- MC_QUATERNIONS quaternion;
- // 6*6 covariance matrix
- // repeated pose = 2;
- }BODY_ODOMETRY;
- //充电相关状态
- typedef struct ROBOT_CHARGE_STATUS_{ //运动控制主机和手机通讯的内容
- std::string charge_tile_name; //充电桩唯一标识符 (考虑当前是否需要)
- CHARGE_POSITION_STATE position_state; //检测到二维码位置时进行进行自动充电模式 反馈到手机
- CHARGE_SWITCH_STATE charge_switch_state; //上桩过程状态 反馈到手机
- bool charge_succeeded; //电池与充电桩连接成功正在充电标志位 该标志位需要BMS与充电桩通信确认
- ROBOT_BATTERY_INFO battery_info;
- bool user_quit_charge_flag;
- }ROBOT_CHARGE_STATUS;
- typedef struct JETSON_CHARGE_STATE_{ //回冲功能上传Jetson的信息
- long heartbeat; //心跳信息
- bool sensnor; //是否打开相机 Jetson 读该信息
- }JETSON_CHARGE_STATE;
- typedef struct JETSON_CHARGE_COMMAND_{ //Jetson主机下发指令到运动主机的信息
- bool tag_state; //检测到二维码 Jetson 写该信息
- MC_QUATERNIONS position; //充电桩位置信息 Jetson 写该位置
- }JETSON_CHARGE_COMMAND;
-
- //Jetson回冲相关的状态统一放在这里
- typedef struct JETSON_CHARGE_INFO_{ //统一管理接口
- JETSON_CHARGE_STATE charge_state; //与充电相关的机器人状态
- JETSON_CHARGE_COMMAND charge_command; //充电相关的位置信息
- }JETSON_CHARGE_INFO;
- //视觉落脚点功能,从运动控制主机上传到Jetson主机所用的数据类型,实机
- typedef struct JETSON_VISUAL_FOOTHOLD_STATE_{
- uint64_t timestamp;
- robot_control::common::BODY_ODOMETRY robot_odometry;
- float touch_detection[LEG_NUMBER];
- float tip_position_wrt_hip[LEG_NUMBER * 3];
- float vf_planned_tip_position_wrt_base[LEG_NUMBER * 3]; //规划出的足端相对机器人base的位置
- bool camera_switch; //是否打开相机
- }JETSON_VISUAL_FOOTHOLD_STATE;
- //视觉落脚点功能,从Jetson主机下发数据到运动控制主机的数据类型
- typedef struct JETSON_VISUAL_FOOTHOLD_COMMAND_{
- uint64_t timestamp;
- float map_center_point[2];
- float body_pos_act[3];
- float body_vel_act[3]; //现在机器人身体实际的速度并没有被用到,临时借用一下作为雷达最新的数据
- float body_pos_est[3];
- float body_vel_est[3];
- float body_orn_act[4];
-
- float body_gyr_act[3];
- float body_orn_est[4];
- float body_gyr_est[3];
- unsigned int neigh_height_map[HEIGHT_MAP_HEIGHT][HEIGHT_MAP_WIDTH];
- unsigned int neigh_roughness_map[HEIGHT_MAP_HEIGHT][HEIGHT_MAP_WIDTH];
- unsigned int neigh_smoothness_map[HEIGHT_MAP_HEIGHT][HEIGHT_MAP_WIDTH];
- }JETSON_VISUAL_FOOTHOLD_COMMAND;
- typedef struct DEPTH_IMAGE_{
- int image[DEPTH_IMAGE_HEIGHT][DEPTH_IMAGE_WIDTH];
- }DEPTH_IMAGE;
- typedef struct RGB_IMAGE_{
- int image[RGB_IMAGE_HEIGHT][RGB_IMAGE_WIDTH];
- }RGB_IMAGE;
- //视觉落脚点相关的状态统一放在这里
- typedef struct JETSON_VISUAL_FOOTHOLD_INFO_{ //统一管理接口
- uint64_t timestamp;
- JETSON_VISUAL_FOOTHOLD_COMMAND vis_foothold_command;
- float touch_detection[LEG_NUMBER];
- float tip_position_wrt_hip[LEG_NUMBER * 3]; //当前机器人足端相对髋关节坐标系的位置
- float vf_planned_tip_position_wrt_base[LEG_NUMBER * 3]; //规划出的足端相对机器人base的位置
- bool camera_switch; //是否打开相机
- }JETSON_VISUAL_FOOTHOLD_INFO;
- typedef enum _STAIRS_HEIGH_STATE{
- STAIRS_HEIGH_NULL = 0,
- STAIRS_LESS_THAN_16CM = 1,
- STAIRS_LESS_THAN_20CM = 2,
- STAIRS_LESS_THAN_30CM = 3,
- }STAIRS_HEIGH_STATE;
- typedef struct ROBOT_DRIVER_VALUE_{
- double position;
- double velocity;
- double torque;
- double torque_sensor;
- }ROBOT_DRIVER_VALUE;
- typedef enum NAV_OR_JOY_MODE_{
- nall_control = 0,
- nav_control = 1,
- joy_control = 2
- }NAV_OR_JOY_MODE;
- typedef enum LIE_DOWN_ADJUST_{
- null = 0,
- start_to_adjust = 1,
- adjusting = 2,
- nimble_stop = 3,
- finish = 4
- }LIE_DOWN_ADJUST_;
- //停障功能从navigation端接收到的结果
- //在目前的使用中,当float<=-2,代表存在障碍物,否则代表不存在障碍物
- typedef struct GUARDIAN_VELOCITY_DECAY_RATIO_{
- float left_ratio;
- float front_ratio;
- float right_ratio;
- float rear_ratio;
- }GUARDIAN_VELOCITY_DECAY_RATIO;
- typedef enum CALIBRATE_POSE_STATE_{
- NULL_STATE = 0,
- START_CALIBRATE = 1,
- CALIBRATE_SUCCESS = 2,
- CALIBRATE_FAILED = 3
- }CALIBRATE_POSE_STATE;
- typedef enum TERRAIN_SEG_DETECTION_RESULTS_{
- NULL_TERRAIN = 0,
- WEI_ZHI = 1,
- CAO_DI = 2,
- CI_ZHUAN = 3,
- DI_BAN = 4,
- DI_TAN = 5,
- LI_QING_LU_MIAN = 6,
- LOU_TI = 7,
- LUAN_SHI_DI_MIAN = 8,
- LU_ZHUAN = 9,
- SHUI_NI_DI = 10,
- TAI_JIE = 11
- }TERRAIN_SEG_DETECTION_RESULTS;
- typedef struct ROBOT_COMMON_STATUS_{
- int network; //机器人当前网络状态
- BODY_POSTURE_STATE belie_or_stand; //机器人处于站立趴下状态(目前不用,芳勇认为测试中可能会用)
- bool emergency; //是否是处于紧急状态
- bool avoidance; //自动避障状态
- long int heartbeat; //心跳
- float cur_speed; //当前速度
- float cur_height; //当前高度
- MC_QUATERNIONS position; //机器人世界坐标系下的位置,xyz与yaw角
- float max_height; //机器人最大高度
- float max_speed; //机器人最大速度
- SCENE_SWITCH_STATE cur_scene_switch_state; //切换场景是否成功
- SCENE_TYPE cur_scene; //当前处于的场景,预设站立 预设应该是趴下比较合理
- DRIVER_ENABLE_STATE driver_enable_state;
- //机器人里程计信息
- BODY_ODOMETRY odometry;
- float tip_position_wrt_hip[LEG_NUMBER*3];//足端相对髋关节坐标系位置
- float vf_planned_tip_position_wrt_base[LEG_NUMBER * 3];
- float touch_detection[LEG_NUMBER];//触地检测,范围从0到1.0, 等于1.0为绝对触地,后期会变为概率,但目前还是只有1或者0两种可能
- float target_body_orientation[3]; //raw pitch yaw
- //错误代码
- int error_code;
- bool has_error;
- unsigned int error_wheel[CODE_WHEEL_NUM];
- unsigned int warn_wheel[CODE_WHEEL_NUM];
- unsigned int note_wheel[CODE_WHEEL_NUM];
- unsigned int joint_error_wheel[JOINT_CODE_WHEEL_NUM];
- unsigned int joint_warn_wheel[JOINT_CODE_WHEEL_NUM];
- unsigned int joint_note_wheel[JOINT_CODE_WHEEL_NUM];
- ROBOT_CHARGE_STATUS charge_status;
- bool salute_state;
- NAV_OR_JOY_MODE joy_mode;
- EQA_STATE eqa_state;
- bool guardian_switch; //表示当前停障功能的开关的状态
- bool visual_foothold_switch; //表示当前视觉落脚点功能开关的状态
- GUARDIAN_VELOCITY_DECAY_RATIO guardian_velocity_decay_ratio; //军营用于显示前左右三个方位的障碍
- LIE_DOWN_ADJUST_ lie_down_adjust; //用于判断趴下前是否正在做足端位置调整
- float speed_bar_on_controller; //机器人遥控器上当前选中的线速度
- CALIBRATE_POSE_STATE calibrate_pos_state;
- int self_test_code;
- int encoder_calibrate_state;
- bool nav_pos_state;//当前导航定位位置是否正常
- bool nav_init_pos;//是否尝试初始化导航定位
- TERRAIN_SEG_DETECTION_RESULTS terrain_seg_result;
- bool uwb_state;
- STAIRS_HEIGH_STATE stairs_state;
- bool weight_load_switch;
- float cur_weight_load;
- bool exceeding_weight_load;
- }ROBOT_COMMON_STATUS;
- typedef enum JOINT_LIMIT_STATE_{
- NULL_LIMIT = 0,
- LIMITED = 1,
- NOLIMITED = 2
- }JOINT_LIMIT_STATE;
- //18个关节的关节状态
- typedef struct ROBOT_JOINT_STATUS_{
- std::string name;
- float current;//电机数据(电流值)
- float joint_temperature;//驱动器温度
- float motor_temperature;//电机温度
- float driver_cpu_temperature;//驱动器cpu温度
- float torque_sensor_data;//扭矩传感器数据
- double position;
- double velocity;
- double effort;
- double max_limit;
- double min_limit;
- JOINT_LIMIT_STATE limit_state;
- unsigned short driver_error_code;
- unsigned short motor_error_code;
- double target_position;
- double target_velocity;
- double target_effort;
- }ROBOT_JOINT_STATUS;
- typedef struct ROBOT_JOINTS_STATUS_{
- ROBOT_JOINT_STATUS joints[MOTOR_NUM];
- long int heartbeat;
- }ROBOT_JOINTS_STATUS;
- typedef struct ROBOT_PER_CYCLE_STATUS_{
- int network;//机器人当前网络状态
- bool lie_stand_state; //joystick连接状态
- bool emergency; //是否是处于紧急状态
- bool avoidance; //自动避障状态
- long int heartbeat; //心跳
- float speed;
- MC_QUATERNIONS position;
- }ROBOT_PER_CYCLE_STATUS;
- typedef struct ROBOT_TARGET_VALUE_{
- ROBOT_DRIVER_VALUE driver[MOTOR_NUM];
- long int heartbeat;
- }ROBOT_TARGET_VALUE;
- typedef enum enFormOfMovement_
- {
- JOINTS_CONTROL = 0,
- MOTION_CONTROL = 1
- }enFormOfMovement;
- typedef struct DRIVER_CONFIG_PARAMETER_{
- std::string motor_name;
- double position_scale;
- double velocity_scale;
- double torque_scale;
- bool motor_direction;
- bool direction_correction;
- int index_map;
- bool be_choosed;
- double init_pos_offset;
- double init_pos_offset_rough;
- double position_min_limit;
- double position_min_safety_limit;
- double position_max_limit;
- double position_max_safety_limit;
- double min_limit_kp;
- double min_limit_ki;
- double min_limit_kd;
- double max_limit_kp;
- double max_limit_ki;
- double max_limit_kd;
- int convert_to_deceleration_end;
- int one_turn_encorder_value;
- double driver_kp_scale;
- double driver_kd_scale;
- double trq_safety_limit;
- double target_torque;
- bool init_pos_check_switch;
- double init_position;
- double init_position_error;
- }DRIVER_CONFIG_PARAMETER;
- typedef struct SENSOR_CONFIG_PARAMETER_{
- double trq_sensor_scale;
- double trq_sensor_offset;
- bool trq_sensor_direction;
- int index_map;
- }SENSOR_CONFIG_PARAMETER;
- typedef struct _JOINTS_CONFIG_INFO{
- robot_control::common::DRIVER_CONFIG_PARAMETER driver_data[MOTOR_NUM];
- robot_control::common::SENSOR_CONFIG_PARAMETER sensor_data[THE_TRQ_SENSOR_NUM];
- bool trq_have_been_calibrated;
- bool joint_position_have_been_calibrated;
- bool encoder_has_been_reseted;
- }JOINTS_CONFIG_INFO;
- typedef struct _ROBOT_SPECIAL_CONFIG_INFO{
- std::string bms_address;
- std::string light_address;
- EN_DRIVER_ECAT_SLAVES_TYPE driver_type;
- EN_TRQ_SENSOR_ECAT_SLAVES_TYPE trq_sensor_type;
- EN_BMS_TYPE bms_type;
- EN_EMOJI_LIGHT_TYPE emoji_light_type;
- EN_LAMP_EFFECT_THEME lamp_effect_theme;
- }ROBOT_SPECIAL_CONFIG_INFO;
- typedef enum _ROBOT_WORKING_ENVIRINMENT{
- ROBOT_BODY_NON = 0,
- ROBOT_BODY_REAL,
- ROBOT_BODY_WEBOTS,
- ROBOT_BODY_GAZEBO
- }ROBOT_WORKING_ENVIRINMENT;
- typedef enum LOG_LEVEL_{
- LOG_LEVEL_NON = 0,
- LOG_LEVEL_DEBUG,
- LOG_LEVEL_NOTE,
- LOG_LEVEL_WARNING,
- LOG_LEVEL_ERROR,
- LOG_LEVEL_ALL,
- LOG_LEVEL_MAX
- }LOG_LEVEL;
- typedef enum LOG_MODULE_NAME_{
- MODULE_NON = 0,
- MODULE_CONTROL_CORE,
- MODULE_ENTRY,
- LOG_MODULE_MAX
- }LOG_MODULE_NAME;
- typedef struct ROBOT_POSE_ESTIMATE_{
- MC_COORDINATE point;
- MC_QUATERNIONS quaternion;
- }ROBOT_POSE_ESTIMATE;
-
- typedef struct BMS_STATE_INFO_{
- float sigle_overvoltage;
- float remaining_capacity;
- float battery_voltage_1th;
- float battery_voltage_2th;
- float battery_voltage_3th;
- float battery_voltage_4th;
- float battery_voltage_5th;
- float battery_voltage_6th;
- float total_voltage;
- float discharging_current;
- float remain_battery_capacity;
- float reconfigurable_system_on_chip;
- float battery_power;
- bool is_charging;
- }BMS_STATE_INFO;
- //Log config
- } // namespace common
- }
- #endif
|