跳转到内容

ArmController API

文档稀疏
符号
153
已记录
32
类型
7
继承关系
3
源码分支
main

121 / 153 个公开 API 符号没有说明。

继承关系总览

继承图尚未加载。

全部继承关系

共 7 个类型

类型目录
类

Arm::Controller

查看源码

上游未提供类型说明。

构造与析构

1

Controller

函数公开
        Arm::Controller::Controller (MITMotorCtrl &joint1, MITMotorCtrl &joint2, MITMotorCtrl &joint3, const Config &config)
      

构造控制器 joint1 关节1电机 joint2 关节2电机 joint3 关节3电机 config 机械臂参数

Core/arm_controller.hpp:64

成员函数

12

calculateCoriolisComp

函数私有
        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

calculateGravityComp

函数私有
        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

calculateInertiaComp

函数私有
        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

getEndEffectorPose

函数公开const
        void Arm::Controller::getEndEffectorPose (float &x, float &y, float &phi) const
      

获取末端位姿 x 末端x y 末端y phi 末端姿态角

Core/arm_controller.hpp:108

getJointAngles

函数公开const
        void Arm::Controller::getJointAngles (float &q1, float &q2, float &q3) const
      

获取关节角 q1 关节1角度(度) q2 关节2角度(度) q3 关节3角度(度)

Core/arm_controller.hpp:116

getJointAnglesComp

函数公开
        void Arm::Controller::getJointAnglesComp (float &q1, float &q2, float &q3)
      

获取补偿回程差后的关节角(与目标语义一致) q1 关节1角度(度) q2 关节2角度(度) q3 关节3角度(度)

Core/arm_controller.hpp:124

getJointVelocities

函数公开const
        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

setPayload

函数公开
        void Arm::Controller::setPayload (float mass, float ramp_time=0.5f)
      

设置负载质量 mass 负载质量 ramp_time 质量变化平滑时间

Core/arm_controller.hpp:94

setStreamingTarget

函数公开
        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

成员变量

30

嵌套类型

1
结构体

Arm::Controller::Config

查看源码

机械臂参数配置

成员变量

25
类

Arm::DJIMITMotorCtrl

查看源码

上游未提供类型说明。

继承关系

基类

构造与析构

1

DJIMITMotorCtrl

函数公开
        Arm::DJIMITMotorCtrl::DJIMITMotorCtrl (motors::DJIMotor *driver, float torque_ratio)
      

torque_ratio DJI 不支持原生 MIT 五元组,因此这里在 MCU 侧做 MIT 风格控制, 再通过把期望力矩换成驱动电流命令。

Core/arm_motor_mit.hpp:169

成员函数

2

outputControl

函数私有
        void Arm::DJIMITMotorCtrl::outputControl (float torque_nm)
      

上游未提供说明。

Core/arm_motor_mit.hpp:176

update

函数公开虚函数
        void Arm::DJIMITMotorCtrl::update (float dt) override
      

上游未提供说明。

Core/arm_motor_mit.hpp:171

成员变量

2
类

Arm::DMMITMotorCtrl

查看源码

上游未提供类型说明。

继承关系

基类

构造与析构

1

DMMITMotorCtrl

函数公开
        Arm::DMMITMotorCtrl::DMMITMotorCtrl (motors::DMMotor *driver)
      

DM 原生支持 MIT 接口,因此这里只需要维护公共状态并直接下发。

Core/arm_motor_mit.hpp:188

成员函数

3

update

函数公开虚函数
        void Arm::DMMITMotorCtrl::update (float dt) override
      

上游未提供说明。

Core/arm_motor_mit.hpp:192

成员变量

1
类

Arm::MITMotorCtrl

查看源码

MIT 控制抽象基类: 管理 MIT 参数、目标值、积分项 getMotor() 统一通过读取角度 / 速度 / 在线状态 派生类只处理具体驱动的命令下发差异 角度:deg 角速度:deg/s 前馈力矩:Nm 单位约定: IMotor::getVelocity() 注意底层的统一单位是 rpm, 这里对外统一换算成 deg/s,方便机械臂控制层直接使用。

继承关系

基类
  • controllers::IController公开

构造与析构

2

MITMotorCtrl

函数受保护
        Arm::MITMotorCtrl::MITMotorCtrl (motors::IMotor *motor, controllers::ControlMode ctrl_mode)
      

上游未提供说明。

Core/arm_motor_mit.hpp:110

~MITMotorCtrl

函数公开
        Arm::MITMotorCtrl::~MITMotorCtrl () override=default
      

上游未提供说明。

Core/arm_motor_mit.hpp:35

成员函数

16

SetIntegralEnable

函数公开
        void Arm::MITMotorCtrl::SetIntegralEnable (bool enable)
      

上游未提供说明。

Core/arm_motor_mit.hpp:46

SetMitParams

函数公开
        void Arm::MITMotorCtrl::SetMitParams (float kp, float kd, float ki, float i_limit)
      

上游未提供说明。

Core/arm_motor_mit.hpp:37

calcIntegralTorque

函数受保护
        float Arm::MITMotorCtrl::calcIntegralTorque (float dt)
      

计算位置误差积分项,返回值的物理意义是附加前馈力矩(Nm)。

Core/arm_motor_mit.hpp:118

getAngle

函数公开const
        float Arm::MITMotorCtrl::getAngle () const
      

获取输出轴角度,单位 deg。

Core/arm_motor_mit.hpp:82

getVelocity

函数公开const
        float Arm::MITMotorCtrl::getVelocity () const
      

获取输出轴角速度,单位 deg/s。

Core/arm_motor_mit.hpp:91

setTarget

函数公开
        void Arm::MITMotorCtrl::setTarget (float angle_ref, float velocity_ref, float torque_ff)
      

上游未提供说明。

Core/arm_motor_mit.hpp:55

targetTorqueFF

函数受保护const
        float Arm::MITMotorCtrl::targetTorqueFF () const
      

上游未提供说明。

Core/arm_motor_mit.hpp:146

targetVelocity

函数受保护const
        float Arm::MITMotorCtrl::targetVelocity () const
      

上游未提供说明。

Core/arm_motor_mit.hpp:145

update

函数公开纯虚函数
        virtual void Arm::MITMotorCtrl::update (float dt)=0
      

上游未提供说明。

Core/arm_motor_mit.hpp:77

update

函数公开
        void Arm::MITMotorCtrl::update () override
      

无 dt 版本仅作为 IController 适配入口使用。 机械臂控制链路里通常应调用带 dt 的版本。

Core/arm_motor_mit.hpp:76

成员变量

10
类

Arm::Slave

查看源码

上游未提供类型说明。

构造与析构

1

Slave

函数公开
        Arm::Slave::Slave (Controller &controller)
      

构造从机控制器 controller 机械臂控制器

controller/arm_slave.hpp:39

成员函数

8

hasActiveTrajectory

函数公开const
        bool Arm::Slave::hasActiveTrajectory () const
      

是否有有效轨迹 有轨迹则为true

controller/arm_slave.hpp:77

pushPoint

函数公开
        bool Arm::Slave::pushPoint (const TrajPoint &point, uint32_t rx_time_ms)
      

推入轨迹点 point 轨迹点 rx_time_ms 接收时间戳 是否推入成功

controller/arm_slave.hpp:47

setRxPeriodMs

函数公开
        void Arm::Slave::setRxPeriodMs (uint32_t period_ms)
      

设置上位机轨迹点周期 period_ms 轨迹点周期(ms)

controller/arm_slave.hpp:64

setTimeoutMs

函数公开
        void Arm::Slave::setTimeoutMs (uint32_t timeout_ms)
      

设置超时时间 timeout_ms 超时(ms)

controller/arm_slave.hpp:58

update

函数公开
        void Arm::Slave::update (uint32_t now_ms, float dt)
      

执行轨迹队列 now_ms 当前时间戳 dt 控制周期(s)

controller/arm_slave.hpp:71

成员变量

12
结构体

Arm::anonymous_namespace{arm_slave.cpp}::HermiteResult

查看源码

上游未提供类型说明。

成员变量

3

其他公开符号

函数

1

Arm::anonymous_namespace{arm_slave.cpp}::quintic

函数静态
        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

变量

3

Arm::anonymous_namespace{arm_slave.cpp}::kFlagComp

变量
        uint8_t Arm::anonymous_namespace{arm_slave.cpp}::kFlagComp
      

上游未提供说明。

controller/arm_slave.cpp:11

Arm::anonymous_namespace{arm_slave.cpp}::kFlagVacuum

变量
        uint8_t Arm::anonymous_namespace{arm_slave.cpp}::kFlagVacuum
      

上游未提供说明。

controller/arm_slave.cpp:10

宏定义

1

文件

7