43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
#pragma once
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Includes ----------------------------------------------------------------- */
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <math.h>
|
|
|
|
/**
|
|
* @brief 串联腿参数结构体
|
|
*/
|
|
typedef struct {
|
|
float thigh_length; // 大腿长度
|
|
float calf_length; // 小腿长度
|
|
} KIN_SerialLeg_Param_t; // ← 补上分号
|
|
|
|
/**
|
|
* @brief 串联腿单腿转摆动杆正运动学
|
|
* @param param 腿部长度参数
|
|
* @param hip_angle 髋关节角度(弧度)
|
|
* @param knee_angle 膝关节角度(弧度)
|
|
* @param angle 计算到的等效摆动杆角度
|
|
* @param height 计算到的等效摆动杆高度
|
|
* @return 0:成功, -1:失败
|
|
*/
|
|
int8_t KIN_SerialLeg_FK(const KIN_SerialLeg_Param_t *param, const float *hip_angle, const float *knee_angle, float *angle, float *height);
|
|
|
|
/**
|
|
* @brief 串联腿单腿转摆动杆逆运动学
|
|
* @param param 腿部长度参数
|
|
* @param angle 输入的等效摆动杆角度
|
|
* @param height 输入的等效摆动杆高度
|
|
* @param hip_angle 计算到的髋关节角度(弧度)
|
|
* @param knee_angle 计算到的膝关节角度(弧度)
|
|
* @return 0:成功, -1:失败
|
|
*/
|
|
int8_t KIN_SerialLeg_IK(const KIN_SerialLeg_Param_t *param, const float *angle, const float *height, float *hip_angle, float *knee_angle);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |