CANBaseReceiveCallback
函数公开静态
void motors::MIMotor::CANBaseReceiveCallback (const CAN_HandleTypeDef *hcan, const CAN_RxHeaderTypeDef *header, const uint8_t *data)
统一 CAN 接收入口
如果项目里已有 CAN 分发器,推荐注册到分发器中; 否则可在 HAL FIFO 回调里直接调用。
motors/MI/mi.hpp:227
void motors::MIMotor::CAN_FilterInit (CAN_HandleTypeDef *hcan, uint32_t filter_bank)
初始化 CyberGear 反馈对应的 CAN 滤波器
接收所有扩展帧,由软件层按 Type 和 ID 分发。
motors/MI/mi.hpp:220
void motors::MIMotor::decode (const uint8_t data[8], uint16_t fault, RunState run_state)
解码 Type 2 反馈帧
motors/MI/mi.hpp:243defaultControlMode
函数公开const
controllers::ControlMode motors::MIMotor::defaultControlMode () const override
上游未提供说明。
motors/MI/mi.hpp:123
bool motors::MIMotor::disable (bool clear_fault=false)
发送失能报文(Type 4)
clear_fault 是否同时清除故障 是否发送成功
motors/MI/mi.hpp:166
bool motors::MIMotor::enable ()
发送使能报文(Type 3)
是否发送成功
motors/MI/mi.hpp:160
uint16_t motors::MIMotor::fault () const
上游未提供说明。
motors/MI/mi.hpp:206
float motors::MIMotor::getAngle () const override
上游未提供说明。
motors/MI/mi.hpp:116
float motors::MIMotor::getVelocity () const override
上游未提供说明。
motors/MI/mi.hpp:117
bool motors::MIMotor::isConnected () const override
上游未提供说明。
motors/MI/mi.hpp:119
void motors::MIMotor::ping ()
心跳保活
未使能时用失能包代替心跳,维持通信但不使能电机。
motors/MI/mi.hpp:178
bool motors::MIMotor::readParam (uint16_t index, float &value)
读取电机内部参数(Type 17)
index 参数索引号 value [out] 读回的 float 值 是否发送成功
motors/MI/mi.hpp:192
void motors::MIMotor::releaseController (controllers::IController *ctrl) override
上游未提供说明。
motors/MI/mi.hpp:211
void motors::MIMotor::resetAngle () override
上游未提供说明。
motors/MI/mi.hpp:118
RunState motors::MIMotor::runState () const
上游未提供说明。
motors/MI/mi.hpp:205
bool motors::MIMotor::sendEnableDisable (uint8_t comm_type, uint8_t data0)
发送使能 / 失能 / 归零内部实现
motors/MI/mi.hpp:255
void motors::MIMotor::setCurrent (float current) override
低层力矩输入
current 力矩,单位 Nm 在 MIT 模式下退化为纯力矩控制:发包时 Kp=Kd=0,仅写入力矩前馈。
motors/MI/mi.hpp:135
void motors::MIMotor::setInternalMIT (float t_ff, float p_ref, float v_ref, float kp, float kd) override
发送 MIT 控制指令(Type 1)
一次将位置、速度、力矩、刚度、阻尼打包下发。 注意这里的 v_ref 不是普通速度模式下的目标转速,而是 MIT 五元组里的速度前馈项, 通常与 p_ref 配套使用,可理解为位置参考的导数。因此单位采用 deg/s 而非 rpm。 t_ff 前馈力矩,单位 Nm,范围 -12 ~ +12 p_ref 位置参考,单位 deg v_ref 速度参考,单位 deg/s(MIT 语义下的速度前馈) kp 刚度,范围 0.0 ~ 500.0 kd 阻尼,范围 0.0 ~ 5.0
motors/MI/mi.hpp:152
bool motors::MIMotor::setMechanicalZero ()
设置当前角度为机械零位(Type 6,掉电丢失)
是否发送成功
motors/MI/mi.hpp:171
bool motors::MIMotor::supportsCurrent () const override
上游未提供说明。
motors/MI/mi.hpp:128supportsInternalMIT
函数公开const
bool motors::MIMotor::supportsInternalMIT () const override
上游未提供说明。
motors/MI/mi.hpp:137
float motors::MIMotor::temperature () const
上游未提供说明。
motors/MI/mi.hpp:203
float motors::MIMotor::torque () const
上游未提供说明。
motors/MI/mi.hpp:204
bool motors::MIMotor::tryAcquireController (controllers::IController *ctrl) override
上游未提供说明。
motors/MI/mi.hpp:210
CAN_TxHeaderTypeDef motors::MIMotor::tx_header (uint8_t comm_type, uint16_t data_area2) const
生成发送报文头
comm_type 通信类型(bit28~24) data_area2 数据区2(bit23~8)
motors/MI/mi.hpp:250
bool motors::MIMotor::writeParam (uint16_t index, float value)
写入电机内部参数(Type 18,掉电丢失)
index 参数索引号 value 写入的 float 值 是否发送成功
motors/MI/mi.hpp:199