1、(2021年2月3日)板子基本焊接完成,尚缺NTC和3.3k的电阻;给板子刷了3.5-24V的固件,能运行,但是连接不上odrivetool,初步怀疑是MCU型号不同于原版导致的

“Downloading json data from ODrive… (this might take a while)”

2、(2021年2月6日22点12分)测试了USB、LCD和五向按键;五向按键封装貌似不太对,好像画反了,取下过程中被烫坏了,无法进行进一步测试

测试程序链接:https://pan.baidu.com/s/1QJ3SYRpDHGpmQnp_Ul7HLw 提取码:LCNB

3、(2021年2月7日17点35分)首次连接24V电源,连接时有火花以及爆响,不过板子还算正常;测量了两片DRV8301的GVDD/DVDD/AVDD电压以及buck电路的输出电压(测量位置均非引脚)

DC005转XT30电源线:

电压测量结果如下:

参考值

GVDD DVDD AVDD
典型值 11V 3.3V 6V
最大值 13V 3.6V 8V

Axis0

GVDD DVDD AVDD buck
修正前 0V(遗失) 3.36V 6.64V 12.00V
修正后 11.11V 3.36V 6.64V 12.00V

Axis1

GVDD DVDD AVDD buck
修正前 11.12V 3.35V 0.53V 4.99V
修正后 11.12V 3.35V 6.66V 4.99V

其中轴0所属DRV8301的GVDD电压测量值近乎0,检查后发现是焊接问题:AVDD与GND引脚连锡,处理后GVDD输出为11.11V

其中轴1所属DRV8301的AVDD电压测量值近乎0,检查后发现是焊接问题:AVDD引脚悬空,处理后AVDD连接到的电容引脚上测得6.66V

4、(2021年2月7日21点54分)测试串口通信,重要参考资料:ODrive干货 #3 ODriveTool 指令大全 - codenocold - CSDN

序号 指令 说明
1 r vbus_voltage 打印总线电压
2 r axis0.fet_thermistor.temperature 打印轴0的MOS管温度
3 r axis0.encoder.config.cpr 打印轴0编码器每圈脉冲数
4 r axis0.encoder.config.use_index 打印轴0编码器是否使用index信号
5 r axis0.encoder.config.mode 打印轴0编码器类型
6 f 0 打印轴0 位置和速度
7 r axis0.motor.phase_current_rev_gain 打印相电流增益倒数

5、(2021年2月8日00点49分)搭建了实验平台;焊接了编码器信号转接板;测用逻辑分析仪直接测量了编码器的引脚,得到波形,验证编码器正常运行; 使用f 0指令查询位置和速度,拨动编码器,二者值变化,控制器与编码器连接正常

6、(2021年2月8日03点04分)配置板子

序号 指令 说明
1 w config.dc_bus_undervoltage_trip_level 10 设置低压阈值
2 r config.dc_bus_undervoltage_trip_level 查询低压阈值
3 w config.dc_bus_overvoltage_trip_level 30 设置高压阈值
4 r config.dc_bus_overvoltage_trip_level 查询高压阈值
5 w config.dc_max_positive_current 30 设置正向电流阈值
6 r config.dc_max_positive_current 查询正向电流阈值
7 w config.dc_max_negative_current -5 设置逆向电流阈值
8 r config.dc_max_negative_current 查询逆向电流阈值
9 w axis0.motor.config.pole_pairs 7 设置电机极对数
10 r axis0.motor.config.pole_pairs 查询电机极对数
11 w axis0.motor.config.calibration_current 3 设置电机校准电流
12 r axis0.motor.config.calibration_current 查询电机校准电流
13 w axis0.motor.config.resistance_calib_max_voltage 2 设置电机校准电压
14 r axis0.motor.config.resistance_calib_max_voltage 查询电机校准电压
15 w axis0.motor.config.motor_type 0 设置电机类型:大电流电机
16 r axis0.motor.config.motor_type 查询电机类型
17 w axis0.motor.config.current_lim 15 设置电机运行最大电流限制
18 r axis0.motor.config.current_lim 查询电机类型
19 w axis0.motor.config.requested_current_range 40 设置电机电流采样范围
20 r axis0.motor.config.requested_current_range 查询电机电流采样范围
21 w axis0.encoder.config.mode 0 设置编码器类型:增量式编码器
22 r axis0.encoder.config.mode 查询编码器类型
23 w axis0.encoder.config.use_index 0 设置编码器index:无index
24 r axis0.encoder.config.use_index 查询编码器index
25 w axis0.encoder.config.cpr 2400 设置编码器cpr:600线*4
26 r axis0.encoder.config.cpr 查询编码器cpr
27 w axis0.encoder.config.bandwidth 3000 设置编码器带宽
28 r axis0.encoder.config.bandwidth 查询编码器带宽
29 w axis0.config.calibration_lockin.current 10 设置开环运行时的电流,单位为 [A],根据负载调整,以电机能够正常转动为准
30 r axis0.config.calibration_lockin.current 查询开环运行时的电流
31 w axis0.config.calibration_lockin.ramp_time 0.4 设置电流爬升时间,表示电流从零爬升到设定的 current 值所需要的时间
32 r axis0.config.calibration_lockin.ramp_time 查询电流爬升时间
33 w axis0.config.calibration_lockin.ramp_distance 3.1415927410125732 设置电流爬升时电角度转动距离,单位为 [rad],配合 ramp_time 参数来缓慢锁定转子相位,可以通过调整 ramp_time、ramp_distance 使编码器索引校准启动的更平顺
34 r axis0.config.calibration_lockin.ramp_distance 查询电流爬升时电角度转动距离
35 w axis0.config.calibration_lockin.accel 20 设置转速爬升的加速度,单位为 [rad/s^2]
36 r axis0.config.calibration_lockin.accel 查询转速爬升的加速度
37 w axis0.config.calibration_lockin.vel 40 设置编码器索引校准的运行速度,单位为 [rad/s]
38 r axis0.config.calibration_lockin.vel 查询码器索引校准的运行速度
39 w axis0.controller.config.vel_limit 50 设置电机最大转速,单位为 [turn/s],例如:此处我们配置为 50 转/秒
40 r axis0.controller.config.vel_limit 查询电机最大转速
41 w axis0.controller.config.pos_gain 30 设置控制器控制增益:位置环增益
42 r axis0.controller.config.pos_gain 查询制器控制增益
43 w axis0.controller.config.vel_gain 0.06 设置控制器控制增益:速度环增益
44 r axis0.controller.config.vel_gain 查询控制器控制增益
45 w axis0.controller.config.vel_integrator_gain 0.3 设置控制器控制增益:速度环增益
46 r axis0.controller.config.vel_integrator_gain 查询控制器控制增益
47 w axis0.trap_traj.config.vel_limit 30 设置梯形轨迹模式下电机匀速时的转速为 30 转/秒
48 r axis0.trap_traj.config.vel_limit 查询梯形轨迹模式下电机匀速时的转速
49 w axis0.trap_traj.config.accel_limit 5 设置梯形轨迹模式下电机加速时的加速度,单位为 [turn/s^2],此处配置为 5,表示电机从静止加速到 5 转/秒 需要一秒钟的时间
50 r axis0.trap_traj.config.accel_limit 查询梯形轨迹模式下电机加速时的加速度
51 w axis0.trap_traj.config.decel_limit 5 设置梯形轨迹模式下电机减速时的加速度,单位为 [turn/s^2],此处配置为 5,表示电机从静止加速到 5 转/秒 需要一秒钟的时间
52 r axis0.trap_traj.config.decel_limit 查询梯形轨迹模式下电机减速时的加速度
53 w axis0.controller.config.input_mode 5 设置输入模式为梯形轨迹模式
54 r axis0.controller.config.input_mode 查询输入模式
55 w axis0.controller.config.input_mode 5 设置输入模式为梯形轨迹模式
56 r axis0.controller.config.input_mode 查询输入模式
57 w axis0.requested_state 4 校准电机

6、(2021年2月9日02点40分)笔者使用的是2312S无刷电机,网上无详细资料,找到了2212电机的参数作为参考

名称 数值
KV 980
定子外径 22mm
定子高度 12mm
定子槽数 12个
极数 14个
空载电流 0.3A
电机电阻 133mΩ
最大连续电流 15A
最大连续功率 300W
最大锂电池节数 2-4S
建议电调 20A
转子直径 27.5mm
出轴直径 3.175mm
电机长度 30mm
电机含轴总长度 32mm
重量 58.5g

7、(2021年2月12日3点7分)vmware虚拟机中安装了ubuntu 20.04LTS,安装odrive以及相关环境后,成功连接上板子,怀疑windows驱动有问题

8、(2021年2月13日19点59分)将电流采样电阻由10mΩ换回原版的500uΩ,校准后电机可以运动

序号 指令 说明
1 odrv0.axis0.motor.config.phase_inductance 相电感
2 odrv0.axis0.motor.config.phase_resistancee 相电感
3 odrv0.axis0.motor.config.pole_pairs 极对数
4 odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION 校准电机
5 odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION 校准编码器(无index)
6 odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL 进入闭环模式
7 odrv0.axis0.controller.input_pos = 50 运动到指定位置
8 odrv0.axis0.requested_state = AXIS_STATE_IDLE 释放电机

9、(2021年2月21日23点51分)几条有用的指令

序号 指令 说明
1 odrv0.axis0.config.startup_motor_calibration ODrive上电后是否自动进行电机校准
2 odrv0.axis0.config.startup_encoder_offset_calibration ODrive上电后是否自动进行编码器偏移校准
3 odrv0.axis0.config.startup_closed_loop_control ODrive上电后是否自动进入闭环控制
4 odrv0.axis0.config.enable_step_dir 是否启用 step/dir 输入控制
5 odrv0.axis0.config.turns_per_step step/dir 每步对应电机转动圈数
6 odrv0.axis0.config.step_gpio_pin axis0 step 对应的 GPIO
7 odrv0.axis0.config.dir_gpio_pin axis0 dir 对应的 GPIO

10、(2021年2月25日18点45分)参数整定

(1)逐渐增加vel_gain ,每次增加 30% 左右,直到电机出现轻微的震荡

逐渐增加 pos_gain ,每次增加 30% 左右,直到您看到有些过冲

逐渐减小 pos_gain ,直到过冲消失

最终参数

名称 数值
vel_integrator_gain 0.005
vel_gain 0.1
pos_gain 50

测试结果

抖动(竖坐标单位:rad)

11、(2021年2月25日18点45分)测试axis1

C相上管损坏,GS电阻30欧,DS电阻0.5欧,GD电阻0.5欧(正常都是M欧)

现象:栅极12V不受控制,A相到C相导通,插上电机就短路

12、(2021年3月2日13点34分)odrive连接到电脑后悔显示两个接口:interface0和interface2,使用zadig将interface2的驱动替换成libusb-win32或者libusbK成功在windows10下连接odrive

13、(2021年3月2日13点34分)windows下,anaconda中新建了一个环境专门用于调试ODrive,安装odrive后运行odrivetool报错如下

解决方式:

python D:\anaconda\Scripts\pywin32_postinstall.py -install

其中路径请视情况更改

14、(2021年3月14日18点20分)axis1仍然报错1024,抱着试一试的心态,(省略),将axis1的C相上管的栅极飞线到GND,重启板子,不再报1024。


MOTOR_ERROR_CURRENT_LIMIT_VIOLATION

ODrive AP调试记录相关推荐

  1. android 蓝牙 驱动,转个蓝牙修改帖--Android BCM4330 蓝牙BT驱动调试记录

    本帖最后由 旋律2014 于 2014-3-27 09:15 编辑 一.关于BT driver的移植: 1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_ ...

  2. 展讯平台功耗调试记录

    展讯平台功耗调试记录 1.查看应用持有锁:dumpsys power | grep LOCK 2.查看内核持有锁:cat /d/wakeup_sources 休眠后查看唤醒源:串口 log 打印 Wa ...

  3. openwrt wifi调试记录

    前言 目前wifi模块使用过pcie接口和sdio接口两款.pcie接口的wifi模块使用较广,内核一般都有现成的驱动支持,至于sdio接口的wifi驱动,可以找芯片厂商拿.本人从事系统及驱动开发,看 ...

  4. ROS上同时预览depth,IR,RGB 调试记录

    ROS上同时预览depth,IR,RGB 调试记录 用rviz同时显示RGB,IR,DEPTH(验证设备:astraprosm,canglong2,deeyea) 1.编译libuvc库 cd lib ...

  5. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录

    ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...

  6. [Deepin - Pycharm调试记录] Pyinstaller索引系统库问题

    Deepin - Pycharm调试记录 - Pyinstaller索引不到系统库 现象 在Pycharm的Terminal中执行Pyinstaller指令时候遇到如下报错提示 OSError: Py ...

  7. RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案)

    RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案) 参考文章: (1)RAISR-ma ...

  8. SX1278 FSK 调试记录

    SX1278 FSK 调试记录 先挖个sx1278 FSK的坑慢慢填 手中有两个SX1278模组 是安信可的产品 采用主从模式 SPI访问 MCU是STM32F107 数据格式 说明收据接收的第一步就 ...

  9. 松下MINAS-A6伺服电机调试记录

    松下MINAS-A6伺服电机调试记录 因项目需求,进行松下MINAS-A6伺服电机调试 文章目录 松下MINAS-A6伺服电机调试记录 概述 一.手册数据 二.设备使用 1.驱动器及电机连接 2.设备 ...

最新文章

  1. swift3.0UIAlertController使用方法
  2. 赴约北大,2019 CCF大数据与计算智能大赛正式启动
  3. 不用重装系统,Win7下直接开启ACHI
  4. JAVA SE学习day_07:异常处理、TCP通信
  5. hadoop namenode启动不了_Hadoop框架:HDFS高可用环境配置
  6. (9) ab测试工具安装与使用
  7. 控制Java并行流的并行度
  8. 1t硬盘怎么分区最好_这下尴尬了,电脑硬盘分区常见误区,移动硬盘分区方法...
  9. cuda nsight 调试和性能分析
  10. Pycharm更改快速规整代码快捷键
  11. 查询数据库中表的空间使用情况
  12. slab中记录空闲对象
  13. 【离散数学】集合论 第三章 集合与关系(1) 集合的概念与表示
  14. 学计算机逻辑思维能力测试题,逻辑思维能力测试题5道含答案
  15. 阿里云产品之数据中台架构
  16. Ubuntu系统下python编程入门
  17. 常见的非线性回归模型
  18. 一张A4纸打印多张财务凭证(分栏报表)
  19. 读博不得不明白的深刻道理
  20. 高中计算机教学工作计划,2017高中信息技术教学工作计划

热门文章

  1. QAxObject保存Excel表格
  2. 解决vivado赋reg时出现的cannot assign to memory或者cannot assign a packed type to an unpacked type
  3. 论文阅读:CVPR2020旷视High-Order Information Matters: Learning Relation and Topology for Occluded Person Re
  4. 好的 免费 报表控件 很多
  5. NLTK11《Python自然语言处理》code10 分析语句的含义
  6. 【项目实战】Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别
  7. mongoDB常用查询更新删除语句
  8. java 人脸渐变_【邀测人像渐变】【Java】生成GIF图或视频
  9. 实现点击图片放大查看功能
  10. rtx3050和rtx3060差距大吗 rtx3050和rtx3060的区别