当前位置:   article > 正文

ODrive AP调试记录_downloading json data from odrive...

downloading json data from odrive...

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

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

image.png

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电源线:

image.png

电压测量结果如下:

image.png

参考值

GVDDDVDDAVDD
典型值11V3.3V6V
最大值13V3.6V8V

Axis0

GVDDDVDDAVDDbuck
修正前0V(遗失)3.36V6.64V12.00V
修正后11.11V3.36V6.64V12.00V

Axis1

GVDDDVDDAVDDbuck
修正前11.12V3.35V0.53V4.99V
修正后11.12V3.35V6.66V4.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

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

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

image.png

image.png

image.png

image.png

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

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

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

名称数值
KV980
定子外径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驱动有问题

image.png

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

image.png

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

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

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

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

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

image.png

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

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

image.png

最终参数

名称数值
vel_integrator_gain0.005
vel_gain0.1
pos_gain50

测试结果

image.png

抖动(竖坐标单位:rad)

image.png

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

image.png

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

image.png

解决方式:

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

其中路径请视情况更改

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

image.png

image.png
MOTOR_ERROR_CURRENT_LIMIT_VIOLATION

image.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/393762?site
推荐阅读
相关标签
  

闽ICP备14008679号