Arm
上游未提供说明。
Core/arm_controller.cpp:9967f6e0c5a1e121 / 153 个公开 API 符号没有说明。
上游未提供说明。
Core/arm_controller.cpp:9上游未提供说明。
controller/arm_slave.cpp:8上游未提供说明。
上游未提供说明。
Core/arm_motor_mit.hpp:9上游未提供说明。
Core/arm_controller.hpp:8上游未提供说明。
Core/arm_motor_mit.hpp:162上游未提供说明。
Core/arm_motor_mit.hpp:182MIT 控制抽象基类: 管理 MIT 参数、目标值、积分项 getMotor() 统一通过读取角度 / 速度 / 在线状态 派生类只处理具体驱动的命令下发差异 角度:deg 角速度:deg/s 前馈力矩:Nm 单位约定: IMotor::getVelocity() 注意底层的统一单位是 rpm, 这里对外统一换算成 deg/s,方便机械臂控制层直接使用。
Core/arm_motor_mit.hpp:32上游未提供说明。
controller/arm_slave.hpp:14机械臂参数配置
Core/arm_controller.hpp:14上游未提供说明。
controller/arm_slave.cpp:13
Arm::Controller::Controller (MITMotorCtrl &joint1, MITMotorCtrl &joint2, MITMotorCtrl &joint3, const Config &config)
构造控制器 joint1 关节1电机 joint2 关节2电机 joint3 关节3电机 config 机械臂参数
Core/arm_controller.hpp:64
void Arm::Controller::calculateCoriolisComp (float q1, float q2, float q3, float dq1, float dq2, float dq3, float &tau1, float &tau2, float &tau3)
计算科里奥利/离心补偿力矩 基于平面 3R 刚体模型:tau_c = C(q, dq) * dq q1 关节1角度(弧度) q2 关节2角度(弧度) q3 关节3角度(弧度) dq1 关节1角速度(弧度/s) dq2 关节2角速度(弧度/s) dq3 关节3角速度(弧度/s) tau1 关节1力矩输出 tau2 关节2力矩输出 tau3 关节3力矩输出
Core/arm_controller.hpp:164
void Arm::Controller::calculateGravityComp (float q1, float q2, float q3, float &tau1, float &tau2, float &tau3)
计算重力补偿力矩 q1 关节1角度(弧度) q2 关节2角度(弧度) q3 关节3角度(弧度) tau1 关节1力矩输出 tau2 关节2力矩输出 tau3 关节3力矩输出
Core/arm_controller.hpp:149
void Arm::Controller::calculateInertiaComp (float q1, float q2, float q3, float ddq1, float ddq2, float ddq3, float &tau1, float &tau2, float &tau3)
计算转动惯量补偿力矩 基于平面 3R 刚体模型:tau_i = M(q) * ddq q1 关节1角度(弧度) q2 关节2角度(弧度) q3 关节3角度(弧度) ddq1 关节1角加速度(弧度/s^2) ddq2 关节2角加速度(弧度/s^2) ddq3 关节3角加速度(弧度/s^2) tau1 关节1力矩输出 tau2 关节2力矩输出 tau3 关节3力矩输出
Core/arm_controller.hpp:187
void Arm::Controller::getEndEffectorPose (float &x, float &y, float &phi) const
获取末端位姿 x 末端x y 末端y phi 末端姿态角
Core/arm_controller.hpp:108
void Arm::Controller::getJointAngles (float &q1, float &q2, float &q3) const
获取关节角 q1 关节1角度(度) q2 关节2角度(度) q3 关节3角度(度)
Core/arm_controller.hpp:116
void Arm::Controller::getJointAnglesComp (float &q1, float &q2, float &q3)
获取补偿回程差后的关节角(与目标语义一致) q1 关节1角度(度) q2 关节2角度(度) q3 关节3角度(度)
Core/arm_controller.hpp:124
void Arm::Controller::getJointVelocities (float &dq1, float &dq2, float &dq3) const
获取关节角速度 dq1 关节1角速度(度/s) dq2 关节2角速度(度/s) dq3 关节3角速度(度/s)
Core/arm_controller.hpp:132
void Arm::Controller::init ()
初始化电机与内部参考值
Core/arm_controller.hpp:72
bool Arm::Controller::isEnabled ()
上游未提供说明。
Core/arm_controller.hpp:134
void Arm::Controller::setPayload (float mass, float ramp_time=0.5f)
设置负载质量 mass 负载质量 ramp_time 质量变化平滑时间
Core/arm_controller.hpp:94
void Arm::Controller::setStreamingTarget (float q1, float q2, float q3, float dq1, float dq2, float dq3, float ddq1, float ddq2, float ddq3)
设置流式目标 q1 关节1角度(度) q2 关节2角度(度) q3 关节3角度(度) dq1 关节1角速度(度/s) dq2 关节2角速度(度/s) dq3 关节3角速度(度/s) ddq1 关节1角加速度(度/s^2) ddq2 关节2角加速度(度/s^2) ddq3 关节3角加速度(度/s^2)
Core/arm_controller.hpp:86
void Arm::Controller::update (float dt)
执行一次控制周期 dt 周期时间(s)
Core/arm_controller.hpp:100
Arm::DJIMITMotorCtrl::DJIMITMotorCtrl (motors::DJIMotor *driver, float torque_ratio)
torque_ratio DJI 不支持原生 MIT 五元组,因此这里在 MCU 侧做 MIT 风格控制, 再通过把期望力矩换成驱动电流命令。
Core/arm_motor_mit.hpp:169
void Arm::DJIMITMotorCtrl::outputControl (float torque_nm)
上游未提供说明。
Core/arm_motor_mit.hpp:176
void Arm::DJIMITMotorCtrl::update (float dt) override
上游未提供说明。
Core/arm_motor_mit.hpp:171
Arm::DMMITMotorCtrl::DMMITMotorCtrl (motors::DMMotor *driver)
DM 原生支持 MIT 接口,因此这里只需要维护公共状态并直接下发。
Core/arm_motor_mit.hpp:188
void Arm::DMMITMotorCtrl::disable () override
上游未提供说明。
Core/arm_motor_mit.hpp:191
bool Arm::DMMITMotorCtrl::enable () override
上游未提供说明。
Core/arm_motor_mit.hpp:190
void Arm::DMMITMotorCtrl::update (float dt) override
上游未提供说明。
Core/arm_motor_mit.hpp:192
Arm::MITMotorCtrl::MITMotorCtrl (motors::IMotor *motor, controllers::ControlMode ctrl_mode)
上游未提供说明。
Core/arm_motor_mit.hpp:110
void Arm::MITMotorCtrl::ResetIntegral ()
上游未提供说明。
Core/arm_motor_mit.hpp:53
void Arm::MITMotorCtrl::SetIntegralEnable (bool enable)
上游未提供说明。
Core/arm_motor_mit.hpp:46
void Arm::MITMotorCtrl::SetMitParams (float kp, float kd, float ki, float i_limit)
上游未提供说明。
Core/arm_motor_mit.hpp:37
float Arm::MITMotorCtrl::calcIntegralTorque (float dt)
计算位置误差积分项,返回值的物理意义是附加前馈力矩(Nm)。
Core/arm_motor_mit.hpp:118
float Arm::MITMotorCtrl::getAngle () const
获取输出轴角度,单位 deg。
Core/arm_motor_mit.hpp:82
float Arm::MITMotorCtrl::getVelocity () const
获取输出轴角速度,单位 deg/s。
Core/arm_motor_mit.hpp:91
bool Arm::MITMotorCtrl::isConnected () const
电机当前是否在线。
Core/arm_motor_mit.hpp:100
bool Arm::MITMotorCtrl::isEnabled () const
上游未提供说明。
Core/arm_motor_mit.hpp:70
float Arm::MITMotorCtrl::kd () const
上游未提供说明。
Core/arm_motor_mit.hpp:143
float Arm::MITMotorCtrl::kp () const
上游未提供说明。
Core/arm_motor_mit.hpp:142
void Arm::MITMotorCtrl::setTarget (float angle_ref, float velocity_ref, float torque_ff)
上游未提供说明。
Core/arm_motor_mit.hpp:55
float Arm::MITMotorCtrl::targetAngle () const
上游未提供说明。
Core/arm_motor_mit.hpp:144
float Arm::MITMotorCtrl::targetTorqueFF () const
上游未提供说明。
Core/arm_motor_mit.hpp:146
float Arm::MITMotorCtrl::targetVelocity () const
上游未提供说明。
Core/arm_motor_mit.hpp:145
virtual void Arm::MITMotorCtrl::update (float dt)=0
上游未提供说明。
Core/arm_motor_mit.hpp:77
void Arm::MITMotorCtrl::update () override
无 dt 版本仅作为 IController 适配入口使用。 机械臂控制链路里通常应调用带 dt 的版本。
Core/arm_motor_mit.hpp:76
Arm::MITMotorCtrl::~MITMotorCtrl () override=default
上游未提供说明。
Core/arm_motor_mit.hpp:35
Arm::Slave::Slave (Controller &controller)
构造从机控制器 controller 机械臂控制器
controller/arm_slave.hpp:39
struct Arm::Slave::__attribute__ ((packed)) TrajPoint
轨迹点
controller/arm_slave.hpp:1
void Arm::Slave::applyPoint (const TrajPoint &point)
应用轨迹点 point 轨迹点
controller/arm_slave.hpp:89
void Arm::Slave::clear ()
清空轨迹缓存
controller/arm_slave.hpp:52
bool Arm::Slave::hasActiveTrajectory () const
是否有有效轨迹 有轨迹则为true
controller/arm_slave.hpp:77
bool Arm::Slave::pushPoint (const TrajPoint &point, uint32_t rx_time_ms)
推入轨迹点 point 轨迹点 rx_time_ms 接收时间戳 是否推入成功
controller/arm_slave.hpp:47
void Arm::Slave::setRxPeriodMs (uint32_t period_ms)
设置上位机轨迹点周期 period_ms 轨迹点周期(ms)
controller/arm_slave.hpp:64
void Arm::Slave::setTimeoutMs (uint32_t timeout_ms)
设置超时时间 timeout_ms 超时(ms)
controller/arm_slave.hpp:58
void Arm::Slave::update (uint32_t now_ms, float dt)
执行轨迹队列 now_ms 当前时间戳 dt 控制周期(s)
controller/arm_slave.hpp:71
static HermiteResult Arm::anonymous_namespace{arm_slave.cpp}::quintic (float p0, float v0, float a0, float p1, float v1, float a1, float T, float t)
上游未提供说明。
controller/arm_slave.cpp:20
float Arm::Controller::Config::I1
上游未提供说明。
Core/arm_controller.hpp:29
float Arm::Controller::Config::I2
上游未提供说明。
Core/arm_controller.hpp:30
float Arm::Controller::Config::I3
上游未提供说明。
Core/arm_controller.hpp:31
float Arm::Controller::Config::I_payload
上游未提供说明。
Core/arm_controller.hpp:36
float Arm::Controller::Config::backlash_1
上游未提供说明。
Core/arm_controller.hpp:52
float Arm::Controller::Config::backlash_2
上游未提供说明。
Core/arm_controller.hpp:53
float Arm::Controller::Config::backlash_3
上游未提供说明。
Core/arm_controller.hpp:54
float Arm::Controller::Config::g
上游未提供说明。
Core/arm_controller.hpp:39
float Arm::Controller::Config::l1
上游未提供说明。
Core/arm_controller.hpp:16
float Arm::Controller::Config::l2
上游未提供说明。
Core/arm_controller.hpp:17
float Arm::Controller::Config::l3
上游未提供说明。
Core/arm_controller.hpp:18
float Arm::Controller::Config::lc1
上游未提供说明。
Core/arm_controller.hpp:20
float Arm::Controller::Config::lc2
上游未提供说明。
Core/arm_controller.hpp:21
float Arm::Controller::Config::lc3
上游未提供说明。
Core/arm_controller.hpp:22
float Arm::Controller::Config::lc_payload
上游未提供说明。
Core/arm_controller.hpp:35
float Arm::Controller::Config::m1
上游未提供说明。
Core/arm_controller.hpp:24
float Arm::Controller::Config::m2
上游未提供说明。
Core/arm_controller.hpp:25
float Arm::Controller::Config::m3
上游未提供说明。
Core/arm_controller.hpp:26
float Arm::Controller::Config::m_payload
上游未提供说明。
Core/arm_controller.hpp:34
float Arm::Controller::Config::offset_1
上游未提供说明。
Core/arm_controller.hpp:47
float Arm::Controller::Config::offset_2
上游未提供说明。
Core/arm_controller.hpp:48
float Arm::Controller::Config::offset_3
上游未提供说明。
Core/arm_controller.hpp:49
float Arm::Controller::Config::reduction_1
上游未提供说明。
Core/arm_controller.hpp:42
float Arm::Controller::Config::reduction_2
上游未提供说明。
Core/arm_controller.hpp:43
float Arm::Controller::Config::reduction_3
上游未提供说明。
Core/arm_controller.hpp:44
float Arm::Controller::G1_
上游未提供说明。
Core/arm_controller.hpp:224
float Arm::Controller::G2_
上游未提供说明。
Core/arm_controller.hpp:225
float Arm::Controller::G3_
上游未提供说明。
Core/arm_controller.hpp:226
float Arm::Controller::G_payload_factor_1_
上游未提供说明。
Core/arm_controller.hpp:228
float Arm::Controller::G_payload_factor_2_
上游未提供说明。
Core/arm_controller.hpp:229
float Arm::Controller::G_payload_factor_3_
上游未提供说明。
Core/arm_controller.hpp:230
Config Arm::Controller::config_
上游未提供说明。
Core/arm_controller.hpp:204
float Arm::Controller::current_payload_mass_
上游未提供说明。
Core/arm_controller.hpp:232
float Arm::Controller::current_q1_acc_ref_
上游未提供说明。
Core/arm_controller.hpp:214
float Arm::Controller::current_q1_ref_
上游未提供说明。
Core/arm_controller.hpp:206
float Arm::Controller::current_q1_vel_ref_
上游未提供说明。
Core/arm_controller.hpp:210
float Arm::Controller::current_q2_acc_ref_
上游未提供说明。
Core/arm_controller.hpp:215
float Arm::Controller::current_q2_ref_
上游未提供说明。
Core/arm_controller.hpp:207
float Arm::Controller::current_q2_vel_ref_
上游未提供说明。
Core/arm_controller.hpp:211
float Arm::Controller::current_q3_acc_ref_
上游未提供说明。
Core/arm_controller.hpp:216
float Arm::Controller::current_q3_ref_
上游未提供说明。
Core/arm_controller.hpp:208
float Arm::Controller::current_q3_vel_ref_
上游未提供说明。
Core/arm_controller.hpp:212
bool Arm::Controller::is_init_
上游未提供说明。
Core/arm_controller.hpp:198
MITMotorCtrl& Arm::Controller::joint1_
上游未提供说明。
Core/arm_controller.hpp:200
MITMotorCtrl& Arm::Controller::joint2_
上游未提供说明。
Core/arm_controller.hpp:201
MITMotorCtrl& Arm::Controller::joint3_
上游未提供说明。
Core/arm_controller.hpp:202
bool Arm::Controller::last_connected_
上游未提供说明。
Core/arm_controller.hpp:197
float Arm::Controller::motor1_init_pos_
上游未提供说明。
Core/arm_controller.hpp:220
float Arm::Controller::motor2_init_pos_
上游未提供说明。
Core/arm_controller.hpp:221
float Arm::Controller::motor3_init_pos_
上游未提供说明。
Core/arm_controller.hpp:222
float Arm::Controller::payload_ramp_rate_
上游未提供说明。
Core/arm_controller.hpp:234
float Arm::Controller::soft_start_duration_
上游未提供说明。
Core/arm_controller.hpp:237
float Arm::Controller::soft_start_scale_
上游未提供说明。
Core/arm_controller.hpp:236
bool Arm::Controller::streaming_enabled_
上游未提供说明。
Core/arm_controller.hpp:218
float Arm::Controller::target_payload_mass_
上游未提供说明。
Core/arm_controller.hpp:233
float Arm::DEG_TO_RAD
上游未提供说明。
Core/arm_controller.cpp:12
motors::DJIMotor* Arm::DJIMITMotorCtrl::dji_
上游未提供说明。
Core/arm_motor_mit.hpp:178
float Arm::DJIMITMotorCtrl::torque_ratio_
上游未提供说明。
Core/arm_motor_mit.hpp:179
motors::DMMotor* Arm::DMMITMotorCtrl::dm_
上游未提供说明。
Core/arm_motor_mit.hpp:195
bool Arm::MITMotorCtrl::i_enable_
上游未提供说明。
Core/arm_motor_mit.hpp:154
float Arm::MITMotorCtrl::i_limit_
上游未提供说明。
Core/arm_motor_mit.hpp:152
float Arm::MITMotorCtrl::kRpmToDegPerSec
上游未提供说明。
Core/arm_motor_mit.hpp:108
float Arm::MITMotorCtrl::kd_
上游未提供说明。
Core/arm_motor_mit.hpp:150
float Arm::MITMotorCtrl::ki_
上游未提供说明。
Core/arm_motor_mit.hpp:151
float Arm::MITMotorCtrl::kp_
上游未提供说明。
Core/arm_motor_mit.hpp:149
float Arm::MITMotorCtrl::sum_err_
上游未提供说明。
Core/arm_motor_mit.hpp:155
float Arm::MITMotorCtrl::target_angle_
上游未提供说明。
Core/arm_motor_mit.hpp:157
float Arm::MITMotorCtrl::target_torque_ff_
上游未提供说明。
Core/arm_motor_mit.hpp:159
float Arm::MITMotorCtrl::target_velocity_
上游未提供说明。
Core/arm_motor_mit.hpp:158
Controller& Arm::Slave::controller_
上游未提供说明。
controller/arm_slave.hpp:91
TrajPoint Arm::Slave::current_point_
上游未提供说明。
controller/arm_slave.hpp:97
bool Arm::Slave::has_active_
上游未提供说明。
controller/arm_slave.hpp:98
bool Arm::Slave::has_prev_
上游未提供说明。
controller/arm_slave.hpp:101
size_t Arm::Slave::kBufferCapacity
轨迹点队列容量
controller/arm_slave.hpp:83
uint32_t Arm::Slave::last_rx_ms_
上游未提供说明。
controller/arm_slave.hpp:103
TrajPoint Arm::Slave::next_point_
上游未提供说明。
controller/arm_slave.hpp:94
bool Arm::Slave::next_valid_
上游未提供说明。
controller/arm_slave.hpp:95
TrajPoint Arm::Slave::prev_point_
上游未提供说明。
controller/arm_slave.hpp:100
libs::RingBuffer<TrajPoint, kBufferCapacity> Arm::Slave::queue_
上游未提供说明。
controller/arm_slave.hpp:92
uint32_t Arm::Slave::rx_period_ms_
上游未提供说明。
controller/arm_slave.hpp:105
uint32_t Arm::Slave::timeout_ms_
上游未提供说明。
controller/arm_slave.hpp:104
float Arm::anonymous_namespace{arm_slave.cpp}::HermiteResult::ddq
上游未提供说明。
controller/arm_slave.cpp:17
float Arm::anonymous_namespace{arm_slave.cpp}::HermiteResult::dq
上游未提供说明。
controller/arm_slave.cpp:16
float Arm::anonymous_namespace{arm_slave.cpp}::HermiteResult::q
上游未提供说明。
controller/arm_slave.cpp:15
uint8_t Arm::anonymous_namespace{arm_slave.cpp}::kFlagComp
上游未提供说明。
controller/arm_slave.cpp:11
uint8_t Arm::anonymous_namespace{arm_slave.cpp}::kFlagVacuum
上游未提供说明。
controller/arm_slave.cpp:10上游未提供说明。
Core/arm_controller.cpp:6上游未提供说明。
Core/arm_controller.cpp上游未提供说明。
Core/arm_controller.hpp上游未提供说明。
Core/arm_motor_mit.hpp上游未提供说明。
Core/arm_motor_mit_dji.cpp上游未提供说明。
Core/arm_motor_mit_dm.cpp上游未提供说明。
controller/arm_slave.cpp机械臂轨迹从机控制器
controller/arm_slave.hpp