快速开始

项目克隆:

git clone https://github.com/Santerc/Controlry.git

安装依赖:

cd Backend
mkdir third #如果已经存在,则跳过这里以及下面的git clone
cd third
git clone https://github.com/ocornut/imgui.git

项目结构简介:

  • Frontend/:仿真窗口(6020.exe)
  • Backend/:C++ 控制端核心代码
  • User/src/MotorControl.cpp:主循环控制逻辑

启动顺序:必须先运行 6020.exe,再运行控制端

界面说明

通信协议

反馈数据包(11 字节)

字段 字节范围 说明
包头 0 固定值 0xA0
电机 ID 1 电机编号 (0~255)
角度 2–5 float (单位:度)
角速度 6–9 float (单位:rad/s)
校验和 10 XOR 校验(字节 0~9)

命令数据包(7 字节)

字段 字节范围 说明
包头 0 固定值 0xA1
电机 ID 1 电机编号 (0~255)
力矩 2–5 float (单位:Nm)
校验和 6 XOR 校验(字节 0~5)

电机控制

获取电机实例:


          Motor* motor = MotorManager::getInstance().getMotor(0);
        

读取状态:

float angle = motor->getCurrentAngle();
float omega = motor->getCurrentOmega();

设置输出力矩:

motor->setTorque(1.5f);

调试 API

添加可编辑变量:

debugInterface.addEditableVariable("Kp", &kp, 0.0f, 10.0f, 0.1f, InputType::SLIDER);

添加观测变量:

debugInterface.addWatchVariable("速度", &omega, ViewMode::WAVEFORM, "rad/s", 0xffcc00);

参数编辑方式

枚举值 说明
SLIDER 滑动条
DRAG 拖拽条
INPUT_BOX 输入框

变量观测模式

枚举值 说明
WAVEFORM 波形显示
NUMERIC 数值显示