使用robotc 环境,运行forward 1圈,debug 看到的Encoder是360,displaymotorvalues是364,这两个信息为什么不一致,哪一个是正确的
Target Rel 是360,displaymotorvalues 显示结果是364,感觉364是对的,360不对,系统debug显示的信息不准确吗?为什么?谢谢
不要看target rel,那是显示距离一圈的剩余度数,和你设置什么目标没有关系。看debug 部分的encoder,那是最终数据,而虚拟主控上的显示是程序运行到display函数时的电机度数。你可以在display函数外加个循环,虚拟显示上的数据先会跳一次不一样的度数,然后就会更新的和debug窗口的encoder数据一样了
我看到了encoder里的数据,似乎debug里数据超过360然后又跳回了360,是不是pid的原因,真实超过360了
对的,结构不一样,效果不一样
那也就是说真实运动的超过360度了,pid模式强制显示360度,这样理解对吗?那么真实情况每次都会出现2、3度的误差
也可能是运行过度数了,但程序还在继续,有些函数能够持续pid回调度数,比如setmotortarget等,但也可能调的比360小,都是合理误差。
运行过度数是因为惯性的问题吧
这就不好说了,各种原因,肯定是有惯性
明白了,非常感谢