6#

[其他] 【RM2020 圆桌】第二期 步兵代码的那些问题

[复制链接]
顾问烟火清凉
2020-1-9 16:06:04 只看该作者
步兵电控组在和视觉组对接时,视觉组会给我们传回pitch轴和yaw轴的数据,视觉组传来的数值不是固定的,一直在一定的范围内变化(可能是云台不稳造成的),所以使云台一直抖动(pitch轴一直上下震,因为pitch一直追视觉那个变化的值)这个问题只靠调内外环pid可以解决吗,还是应该先处理数值,像取个平均值,还有那个卡尔曼滤波加上之后,好像没有什么变化,甚至有的时候更加的震。如果需要处理数据有什么好办法。
5#

[其他] 【RM2020 圆桌】第二期 步兵代码的那些问题

[复制链接]
正式队员infosis
2020-1-9 00:15:23 只看该作者
官方代码是直接适用开发板A型吗?开发板A型是427芯片,若移植到407会需要哪些修改?谢谢!
地板

[其他] 【RM2020 圆桌】第二期 步兵代码的那些问题

[复制链接]
正式队员infosis
2020-1-9 00:11:39 只看该作者
本帖最后由 infosis 于 2020-1-9 00:13 编辑

官方开源的是github的还是robomaster.com官网2016开源的代码?
板凳

[其他] 【RM2020 圆桌】第二期 步兵代码的那些问题

[复制链接]
顾问烟火清凉
2020-1-8 10:40:37 只看该作者
我们的步兵云台有pitch轴电机、摩擦轮电机,拨弹盘电机四个电机,全都用的can控制,但是每次运行时要么只有pitch动要么只有摩擦轮和拨弹盘动,代码里谁的输出在前面谁动,每个电机都有反馈,都有输出,id也没有问题,不动的电机的输出一直显示最大(pitch电机单独一个can发送,两个摩擦轮和拨弹电机一个can发送)。有人说是can发送队列太多,导致发送错误,我们云台一共两个电机的can发送、两个给底盘数据的can发送,四个应该不多吧,底盘的can队列比云台还要多也没有问题。如果确实是队列太多,应该怎么解决,每个can发送最多几个队列。我们尝试过在两个电机can发送之间加了1ms的延时,几个电机都可以动了,但是延时不应该在程序里留着,不是长久之策。几个电机、电调、电路板都是好的,全都单独测试过,也更换过,一直出现同样的错误。
回复 支持 1 反对 0

使用道具 举报

沙发

[其他] 【RM2020 圆桌】第二期 步兵代码的那些问题

[复制链接]
梯队队员Mlekow
2020-1-7 23:53:58 只看该作者
本帖最后由 Mlekow 于 2020-1-7 23:55 编辑

关于CAN控制电机的问题我比较好奇,也有些疑惑……希望能够得到解答。

例程在CAN控制电机方面,似乎是使用了中断接收CAN回报的各种信息,如果我没有记错的话是1kHz发送的报文。然后在RTOS中开了一个线程来尽可能快的解析收到的信息并计算PID,向电机发出PID计算出的目标电流值,并且这个线程执行速度应该远快于1kHz。

所以如果说电机回报的速度是1kHz,那么理论上PID的执行频率如果大于1kHz,是否可以说PID计算出来的信息就是重复的呢?如果是重复的,那以1kHz的速度发送控制数据包,是否可以达到同样的控制效果?

另外在我自己实验的时候发现,单纯发送一帧数据哪怕电流给到最大值,电机也不会转动。只有当以一定频率(印象中是100Hz)发送的时候,电机才会转动。但是无论是以100Hz的频率发送数据包还是以1kHz的频率发送数据包,电机的转速都没有显著的变化。

其中电调对CAN控制的处理机制让我很不解,查阅大量资料未果,希望得到一些解答。例如,是否一帧控制帧在电调内有着一定时间的生命周期,每包在下一包到来之前都会维持当前电流环目标值一定的时间?如果能略加指点,不胜感激!


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表